我想找到通用T
的类型,并在运行时比较它以检查它是哪个接口。
因此,这适用于在运行时查找T的类型:
Type interfaceName = typeof(T); // gives me the specific interface type
但是当我尝试检查它是否等于接口的类型时,我没有得到预期的响应。
Type.GetType("IMyInterface"); //this returns null
我如何比较这两个?
答案 0 :(得分:2)
如果您想使用Type.GetType
,则需要传递assembly-qualified name。
但是,看起来您只想检查界面的名称,因此您只需使用
即可Type interfaceType = typeof(T);
string interfaceName = interfaceType.Name;
您也可以查看是否typeof(T) == typeof(IMyInterface)
答案 1 :(得分:1)
GetType
方法需要完全限定的名称。所以你需要:
Type.GetType("YourNamespace.IMyInterface");
或者如果您对已声明IMyInterface
的程序集有引用,则只需typeof(IMyInterface)
即可完成此任务。
答案 2 :(得分:0)
也许是这样的:
typeof(T).Name == "IMyInterface"