【发布时间】:2014-11-12 06:50:36
【问题描述】:
我有一个名为MyNamespace.Demo1 的命名空间,一个名为STClass 的静态类,以及该类中的一个名为prpAssm 的属性。如何获取属性prpAssm的数据类型?
【问题讨论】:
标签: c# .net properties .net-assembly system.reflection
我有一个名为MyNamespace.Demo1 的命名空间,一个名为STClass 的静态类,以及该类中的一个名为prpAssm 的属性。如何获取属性prpAssm的数据类型?
【问题讨论】:
标签: c# .net properties .net-assembly system.reflection
Type classType = typeof(STClass);
PropertyInfo propertyInfo = classType.GetProperty("prpAssm");
Type propertyType = propertyInfo.PropertyType;
如果该类在另一个项目中,您应该加载程序集。
var assembly = Assembly.LoadFrom(@"MyNamespace.Demo1.dll");
Type classType = assembly.GetType("MyNamespace.Demo1.STClass");
PropertyInfo propertyInfo = classType.GetProperty("prpAssm");
Type propertyType = propertyInfo.PropertyType;
BR
【讨论】:
Type classType = Type.GetType("MyNamespace.Demo1.STClass"); 但是你为什么想要那样的东西
Assembly.LoadFrom(...) 而不是Assembly.LoadFile 例如var assembly = Assembly.LoadFrom(@"MyNamespace.Demo1.dll"); Type classType = assembly.GetType("MyNamespace.Demo1.STClass"); PropertyInfo propertyInfo = classType.GetProperty("prpAssm"); Type propertyType = propertyInfo.PropertyType;
试试这个:-(使用PropertyInfo)
Assembly myAss = Assembly.LoadFile(@"YourAssemblyPath.dll");
Type myType = myAss.GetType("MyNamespace.Demo1.STClass");
PropertyInfo myProp = myType.GetProperty("prpAssm");
Console.WriteLine(myProp.PropertyType);
【讨论】:
assembly?请检查我的编辑。在LoadFile 中,您需要指定完整的组件路径和名称。