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++類。
請告訴我該怎麼做。