首页 > 解决方案 > 使用反射c#获取字段和属性的方法

问题描述

我在我的代码中使用了两个数组:

 var fields = typeof(MyDtoClass).GetProperties();
 var fieldsOfDtoClass = typeof(MyDtoClass).GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);

但我用它来生成一个表,并且可能不同步。我怎样才能使用一个数组,但可以在一个地方获得属性,而在另一个地方字段这个这样的标志?我应该查看 GetMembers 还是 smth?任何帮助深表感谢

标签: c#reflection

解决方案


使用类名

typeof(YourClass).GetMethod("METHOD_NAME");
typeof(YourClass).GetProperty("PROPERTY_NAME");

使用实例

yourInstance.GetType().GetMethod("METHOD_NAME");
yourInstance.GetType().GetProperty("PROPERTY_NAME");

枚举所有属性

foreach (var property in typeof(YourClass)) {
 Console.WriteLine(property);
}

使用 Linq 枚举它们的方法相同

typeof(YourClass).GetMethods()
                 .Select(method => method.Name == "GetType");

官方文档


推荐阅读