C# 查找模型类内的枚举类型

C# 查找模型类内的枚举类型,c#,enums,C#,Enums,我有一个模型类,它有枚举类型、整数、字符串e.t.c 比如, public class CustomerModel { public int id { get; set; } public CustomerType CustomerType { get; set; } public DateTime MembershipStartDate { get; set; } public CustomerClass CustomerClass { get; se

我有一个模型类,它有枚举类型、整数、字符串e.t.c

比如,

    public class CustomerModel
{

    public int id { get; set; }
    public CustomerType CustomerType { get; set; }
    public DateTime MembershipStartDate { get; set; }
    public CustomerClass CustomerClass { get; set; }       
    public string Surname { get; set; }
    public EducationStatus EducationStatus { get; set; }
    public Gender Gender { get; set; }
    public int NationalityId { get; set; }

}
我需要从这个模型类中捕获枚举类型及其名称。我尝试了GetType、GetTypes、GetProperty e.t.c,但找不到任何解决方案。如果我能捕捉到那个枚举类型,我就可以轻松地在我的应用程序的任何地方使用那个类型。否则我需要一个接一个地抓住它们。请帮助。

您可以这样做:

Type type = typeof(YourClass);
var properties = type.GetProperties();
var propertiesWithEnumTypes = properties.Where(x => x.PropertyType.IsEnum);
var typeNames = propertiesWithEnumTypes.Select(x => x.PropertyType.Name);
它非常简单:获取类的
Type
实例,获取其属性,过滤属性列表以仅保留属性类型为enum的属性,将过滤后的列表映射到类型的名称


如果要获取属性的名称而不是枚举类型的名称,请将
x.PropertyType.name
替换为
x.name

你能分享你尝试过的东西并解释你在这方面面临的问题吗?@Chetan Ranpariya我有一个xamarin应用程序,可以从webAPI中提取枚举值。就像我将我的枚举名发送到webAPI并获取值一样。我希望捕获并发送带有属性名的枚举名,而不是像我在代码中编写的字符串那样。