gpt4 book ai didi

c# - 通过检查其通用类型来查找具有反射的特定属性

转载 作者:行者123 更新时间:2023-11-30 20:00:13 26 4
gpt4 key购买 nike

假设我有类(class)

public partial class MyEntities: DbContext
{
public DbSet<Customer> Customers {get;set;}
public DbSet<CustomerInfo> CustomerInfos {get;set;}
public DbSet<Order> Orders {get;set;}
// etc
}

如何找到具有泛型类型的属性 Customer

换句话说,我正在寻找创建方法:

 public PropertyInfo GetProperty<T>(){
var allProperties = TypeOf(MyEntities).GetProperties();
// implementation
}

如果我将方法调用为 GetProperty<Customer>()然后我会想得到第一个属性(property)。如果我将该方法称为 GetProperty<Order>()然后我想得到最后的属性(property)。我如何检查 <Type>用反射?

最佳答案

使用Type.IsGenericTypeType.GetGenericArguments() :

public PropertyInfo GetProperty<T>(){
var allProperties = TypeOf(MyEntities).GetProperties();
return allProperties.FirstOrDefault(prop => prop.PropertyType.IsGenericType
&& prop.PropertyType.GenericTypeArguments.FirstOrDefault() == typeof(T));
}

关于c# - 通过检查其通用类型来查找具有反射的特定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21922609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com