我正在使用Visual Studio的CodeModel来收集代码中接口的信息。
我能够使用类型CodeInterface
成功收集有关界面的信息。这个接口公开了一个属性Bases,它允许我发现我的接口继承的接口。
然而,虽然我能够使用.Children
逐步完成初始界面的属性或方法。我不能对父接口做同样的事情(抛出NotImplementedException
)。
最初我认为这个问题是因为我正在使用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 );
}
}
答案 0 :(得分:0)
原来使用的CodeInterface
的正确属性是.Members
(它仍然是CodeElements
的可枚举集