如何从程序集中检索值

时间:2011-11-14 06:42:25

标签: c# .net .net-assembly

我有一个如下所示的代码 此方法中的“xmlSerializableType.AssemblyName”值为"_Rounded_TreeGOLD, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",即用户定义类的程序集名称,“xmlSerializableType.Name”为“_Rounded_Tree”。在这里,我需要将“xmlSerializableType.Name”分配给“type”,例如"GetType(xmlSerializableType.Name);",以便'type'变为type = {Name =“_Rounded_Tree”FullName =“_ Rounded_Tree”}如何实现这个,我的意思是我需要为“type”实现什么代码

2 个答案:

答案 0 :(得分:0)

您应该使用Assembly.Load("TheLongNameOfYourAssembly")

而不是assembly = new Assembly()来加载类型所在的程序集

然后在加载的程序集上,您可以执行GetType

答案 1 :(得分:0)

像Wouter所说,使用Assembly.Load(“AssemblyLongName”)。 在该程序集上,您可以使用assembly.GetTypes()或更好的assembly.GetExportedTypes()仅用于“public”类型。

迭代类型并检查它们的名称。 如果您有一些共同基类或更多信息,可以查看System.Type上的各种方法 例如,您可以使用asmType.BaseType == typeof(yourBaseType)或 typeof运算(yourBaseType).IsAssignableFrom(asmType)。

看看MSDN链接,我很确定你会找到那里所需的一切。

如果您确实知道名称的汇编.GetType(“yourExactTypeName”)也应该有效。