我有两个接口
public interface IEntity<TKey> {
}
和
public interface IEntity : IEntity<int> {
}
我知道我可以通过执行IEntity
来检查某个类型是否为if ( entity is IEntity )
但是如何检查它是否更普遍是IEntity<TKey>
个对象?
另外,如何将通用实体安全地转换为接口类型?
答案 0 :(得分:2)
使用反射查看以下示例。
Type targetType = typeof(IEntity<>);
var entityType = entity.GetType();
if (entityType.IsGenericType
&& targetType.IsAssignableFrom(entityType.GetGenericTypeDefinition())) {
}