我有一些具有公共属性的类,但是,我不能让它们派生自基类型(LINQ-to-SQL 限制)。
我想将它们视为具有基本类型,但不是通过使用反射(性能至关重要)。
例如:
public class User
{
public int Id { get; set; }
public string FirstName { get; set; }
}
public class Vehicle
{
public int Id { get; set; }
public string Label { get; set; }
}
在这种情况下,如果我有Id
可用的财产,我会很高兴,无论我持有什么类型。
在 C# 中有什么方法可以实现类似的东西:
public static int GetId<T>(T entity) where T // has an int property 'Id'
{
return entity.Id;
}
我想我可以使用dynamic
,但是,我正在寻找一种方法来限制编译时的代码,不要将此方法用于没有Id
属性的对象。