我正在将 .net 4.7 项目移植到 .net 标准,它使用 T4 生成一些代码。我遍历类、属性和方法。这使用完美,但现在 DTE 的返回类型是“System.__ComObject”类型,我无法转换它们。
错误:无法将“System.__ComObject”类型的 COM 对象转换为接口类型“EnvDTE.CodeClass”。此操作失败,因为 IID 为“{B1F42514-91CD-4D3A-8B25-A317D8032B24}”的接口的 COM 组件上的 QueryInterface 调用失败,原因如下:不支持此类接口(来自 HRESULT 的异常:0x80004002 (E_NOINTERFACE)) .
任何想法如何解决这一问题?
例子:
public static bool CheckBase(CodeClass codeClass, string baseName)
{
var bases = codeClass.Bases;
if (bases != null)
{
foreach (CodeClass baseClass in bases)
{
if(baseClass.Name == baseName) return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)