检查我的对象是否在C#中实现了通用接口

本文关键字:实现 接口 我的 对象 是否 检查 | 更新日期: 2023-09-27 17:57:31

我有一个接口:

public interface IEntityWithTypedId<T>{}

并且有两个类:

public abstract class EntityWithTypedId<TId> : IEntityWithTypedId<TId>{...}
public abstract class Entity : EntityWithTypedId<int>{...}    

所以我有这样的实体:

public class TestA : Entity
public class TestB : EntityWithTypedId<string>
public class TestC : EntityWithTypedId<byte>

如何检查我的实体是否实现了IEntityWithTypedId?

感谢

检查我的对象是否在C#中实现了通用接口

typeof(TestA).GetInterfaces()
    .Any(i => i.GetGenericTypeDefinition() == typeof(IEntityWithTypedId<>))