我有以下代码块。如何从特定的DLL文件中获取所有属性名称?目前,我可以获取类名,命名空间但我不知道如何在类中获取属性。谢谢,
foreach (Type type in myAssambly.GetTypes())
{
PropertyInfo myPI = type.GetProperty("DefaultModifiers");
System.Reflection.PropertyAttributes myPA = myPI.Attributes;
MessageBox.Show(myPA.ToString());
}
答案 0 :(得分:1)
听起来你真的对房产感兴趣:
foreach (Type type in myAssembly.GetTypes())
{
foreach (PropertyInfo property in type.GetProperties())
{
MessageBox.Show(property.Name + " - " + property.PropertyType);
}
}
编辑:好的,所以听起来你真的想要字段:
foreach (Type type in myAssembly.GetTypes())
{
foreach (FieldInfo field in type.GetFields(BindingFlags.Instance |
BindingFlags.Static |
BindingFlags.Public |
BindingFlags.NonPublic))
{
MessageBox.Show(field.Name + " - " + field.FieldType);
}
}
答案 1 :(得分:0)
如果你有一个DLL的编译时引用,你可以使用它的类型来获取它的汇编,然后使用你的代码来获取属性:
var myAssembly = Assembly.GetAssembly(typeof(SomeType));
否则你可以动态加载它:
var myAssembly = Assembly.LoadFrom(assemblyPath);