c# - 从全名创建 C# 类型

标签 c# assemblies types

我正在尝试从类型全名中获取类型对象,我正在执行以下操作:

Assembly asm = Assembly.GetEntryAssembly();  
string toNativeTypeName="any type full name";
Type t = asm.GetType(toNativeTypeName);

我得到的是空值,为什么?

程序集是我的可执行文件(.net 可执行文件),类型名称是:System.Xml.XmlNode

最佳答案

好吧,如果那真的是类型的全名(即包括命名空间)并且它在那个程序集中,那么它应该可以工作。你能举一个没有的例子吗?当您使用 Assembly.GetType 而不是 Type.GetType 时,您不应在类型名称中包含程序集名称。

请注意,通用类型的名称并不是您所期望的那样。例如,您将使用:

assembly.GetType("System.Collections.Generic.List`1");

获取通用列表类型,然后使用 Type.MakeGenericType 提供类型参数。

当然,只有当类型是泛型时才有意义。如果这不是问题所在,我会仔细检查该类型是否确实在您的入口程序集中。

编辑:哦,请注意嵌套类型将是“Container+Nested”而不是“Container.Nested”,如果相关的话......

关于c# - 从全名创建 C# 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1392763/

相关文章:

c# - 当程序集用作子类时,CurrentDomain.AssemblyResolve 不会触发

.net - 通俗地描述.NET程序集循环依赖问题

c++ - 什么时候类型会提升为无符号整型?

java - JVM 如何处理字符串赋值?

c# - EndpointNotFoundException 未处理 (WCF)

c# - 无法使序列化信息出现在 XML 中

reporting-services - 为什么在 "Add Reference..."对话框中看不到 Microsoft.ReportViewer.WebForms 版本 10.0.0.0?

entity-framework - Entity Framework : Value cannot be null. 参数名称:类型

c# - Xamarin 自定义 TableView header

c# - ASP.NET 4.0 中的 SameSite cookie