如何在c#中的外部dll文件中读取类的属性



我有以下代码块。如何从特定的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);

相关内容

  • 没有找到相关文章

最新更新