C# 使用反射c获取字段和属性的方法#

C# 使用反射c获取字段和属性的方法#,c#,reflection,C#,Reflection,我在代码中使用了两个数组: var fields = typeof(MyDtoClass).GetProperties(); var fieldsOfDtoClass = typeof(MyDtoClass).GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); 但是我使用它来生成一个表,它可能会不同步。如何使用一个数组,但可以在一个位置获取属性,而在另一个位置获取此类标记的字段?我

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

 var fields = typeof(MyDtoClass).GetProperties();
 var fieldsOfDtoClass = typeof(MyDtoClass).GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
但是我使用它来生成一个表,它可能会不同步。如何使用一个数组,但可以在一个位置获取属性,而在另一个位置获取此类标记的字段?我应该看看GetMembers还是smth?非常感谢使用类名提供的任何帮助

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");

请回答您的问题并添加
MyDtoClass
类定义和预期的输出数组
MemberInfo[]fieldsAndProps=typeof(MyDtoClass).GetProperties().OfType().Concat(typeof(MyDtoClass).GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance)).ToArray()
这听起来更像是阅读在线文档的练习。“使用它生成一个表,可能会导致不同步”-通过“字段”,您是指数据库列吗?当类发生更改时,是否尝试更新表结构?那就不要重新发明这个复杂的轮子;use Entity Framework Migrations.OP要求的是字段和属性,而不是方法