假设我有一个接口(interface)继承树:
IParent > IChild > IGrandChild
我会怎样:
- 找到一个实现 IParent 的类
- 确定也是 IParent 的子类的最近的祖先。
例如:
var myClass = FindImplementor<IParent>();
var myInterface = ClosestAncestor<IParent, myclass>();
我不打算创建与上述签名匹配的函数。那只是为了澄清。
IParent 的后代以及实现类都在一个动态加载的程序集中。我不确定这是否会产生影响。
最佳答案
您可以使用 as 关键字并检查是否为空。
例子:
var someObject = GetMeSomething(); //returns some IParent/IChild/IGrandChild
if ((someObject as IParent) != null)
if ((someObject as IChild) != null)
{
if ((someObject as IGrandChild) != null)
{
//you have an IGrandChild
}
else
{
//you have an IChild
}
}
else
{
//you have an IParent
}
}
//you have something other than your interface hierarchy
实际上,我并不是很喜欢这个想法,但它就是我想到的。试图识别链式店存在许多问题。我想到了多个实现链。
关于c# - 确定最接近类的子接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1723228/