我有以下代码块。如何从特定的DLL文件中获取所有属性名称?目前,我可以获取类名、名称空间,但我不知道如何获取类中的属性。谢谢你,
foreach (Type type in myAssambly.GetTypes())
{
PropertyInfo myPI = type.GetProperty("DefaultModifiers");
System.Reflection.PropertyAttributes myPA = myPI.Attributes;
MessageBox.Show(myPA.ToString());
}
听起来你真的对属性感兴趣:
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);
}
}
如果你有一个对DLL的编译时引用,你可以使用它的类型来获取它的程序集,然后使用你的代码来获取属性:
var myAssembly = Assembly.GetAssembly(typeof(SomeType));
否则,您可以动态加载:
var myAssembly = Assembly.LoadFrom(assemblyPath);