我正在使用 Visual Studio 的 CodeModel 来收集代码中的接口信息。
我能够使用 type 成功收集有关接口的信息CodeInterface
。这个接口公开了一个属性 Bases,它允许我发现我的接口继承自哪些接口。
但是,虽然我可以使用.Children
. 我不能对父接口做同样的事情( aNotImplementedException
被抛出)。
最初我认为这个问题是因为我使用的是 FileCodeModel,所以我切换到Project.CodeModel
:
FileCodeModel fileCM =
_applicationObject.ActiveDocument.ProjectItem.FileCodeModel;
我的代码:
CodeModel CM = _applicationObject.ActiveWindow.Project.CodeModel;
CodeInterface myInterface =
(CodeInterface)CM.CodeTypeFromFullName( "ConsoleApplication8.IWrapper" );
foreach( CodeElement cE in myInterface.Bases ) {
if( cE is CodeInterface ) {
string itemName = cE.FullName;
CodeInterface parentInterface =
(CodeInterface)CM.CodeTypeFromFullName( itemName );
}
}