我有一个方法,需要解析类的类型.此类存在于另一个程序集中,其命名空间类似于:

MyProject.Domain.Model

我正在try 执行以下操作:

Type.GetType("MyProject.Domain.Model." + myClassName);

如果执行此操作的代码与我试图解析其类型的类位于同一程序集中,则此操作非常有效.但是,如果我的类位于不同的程序集中,则此代码会失败.

我相信有更好的方法来完成这项任务,但我没有太多的经验来解析程序集和遍历其中的名称空间,以解析我要查找的类的类型.有什么建议或提示可以更优雅地完成这项任务吗?

推荐答案

您必须像这样添加程序集名称:

Type.GetType("MyProject.Domain.Model." + myClassName + ", AssemblyName");

为了避免歧义,或者如果程序集位于GAC中,则应提供完全限定的程序集名称,如:

Type.GetType("System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");

.net相关问答推荐

.NET Blazor-使用子组件中的处理程序方法进行双向数据绑定

StackExchange.Redis和NRedisStack包有什么不同?

PowerShell中窗体定时器和系统定时器的统一处理

如何使用.NET8MapIdentityApi设置OpenApi操作ID

无法实例化类的代理:System.Net.HttpWebRequest.找不到无参数构造函数

如何调试 .NET 运行时中的内部错误?

在 ASP.NET MVC 中我可以在哪里放置自定义类?

为什么 .NET 内部 Hashtable 中有一个 Thread.Sleep(1)?

AutoMapper 的替代品

托管和非托管代码、内存和大小有什么区别?

Automapper:使用 ReverseMap() 和 ForMember() 进行双向映射

调用委托与方法的性能

有什么方法可以在不重新编译的情况下覆盖 .NET Windows 服务名称?

DBNull 的意义何在?

隐式与显式接口实现

如何知道 DateTime 是否在 C# 中的 DateRange 之间

判断 .NET 中的目录和文件写入权限

使用 DateTime.ToString() 时获取日期后缀

多个列表与 IEnumerable.Intersect() 的交集

Dictionary.Add 与 Dictionary[key]=value 的区别