通用的区别

时间:2017-08-27 14:46:40

标签: c# generics

我有两个接口

public interface IEntity<TKey> {
}

public interface IEntity : IEntity<int> {
}

我知道我可以通过执行IEntity来检查某个类型是否为if ( entity is IEntity )但是如何检查它是否更普遍是IEntity<TKey>个对象?

另外,如何将通用实体安全地转换为接口类型?

1 个答案:

答案 0 :(得分:2)

使用反射查看以下示例。

Type targetType = typeof(IEntity<>);
var entityType = entity.GetType();
if (entityType.IsGenericType 
    && targetType.IsAssignableFrom(entityType.GetGenericTypeDefinition())) {

}