0
codeModel을 사용하여 파일에 코드를 추가 할 수 있습니다.Vspackage 개발, 파일 또는 클래스의 코드 요소를 얻는 방법
이제 변수와 같은 코드 요소를 지정된 클래스에 추가하려고합니다.
그래서 내가해야 할 일은 내가 수정하고 싶은 클래스를 얻는 것입니다. 다음 내 코드입니다 :
IVsProject project = YHMExtensionHelper.GetSelectedProject();
int found;
uint itemId;
VSDOCUMENTPRIORITY[] pdwPriority = new VSDOCUMENTPRIORITY[1];
project.IsDocumentInProject("TEST.h", out found, pdwPriority, out itemId);
if (found == 0 || itemId == 0)
return;
Microsoft.VisualStudio.OLE.Interop.IServiceProvider oleSp = null;
project.GetItemContext(itemId, out oleSp);
if (oleSp == null)
return;
ServiceProvider sp = new ServiceProvider(oleSp);
EnvDTE.ProjectItem item = sp.GetService(typeof(EnvDTE.ProjectItem)) as EnvDTE.ProjectItem;
var codeModel = item.FileCodeModel;
var eles = codeModel.CodeElements;
for (int i = 0; i < eles.Count; i++)
{
var singleItem = eles.Item(i);
var str = singleItem.Name;
}
그러나 이것은, 내가 eles.Count을 얻을 수있는, 내가 eles.Item (I)로 항목을 얻을 수없는 작동하지 않습니다.
TEST.h에는 간단한 C++ 클래스가 있습니다.
제발 어떻게하는지 알려주세요.