0

我正在使用 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 );
    }
}
4

1 回答 1

0

原来使用的正确属性CodeInterface.Members(它仍然是一个可枚举的集合CodeElements

于 2012-08-20T16:54:05.723 回答