0

我正在尝试监视项目添加事件。

我创建了一个自定义编辑器工厂,例如

public class ProjectEditorFactory : IVsEditorFactoryNotify, IVsEditorFactory
{
    public int NotifyDependentItemSaved(IVsHierarchy pHier, uint itemidParent, string pszMkDocumentParent, uint itemidDpendent, string pszMkDocumentDependent)
    {
        return VSConstants.S_OK;
    }

    public int NotifyItemAdded(uint grfEFN, IVsHierarchy pHier, uint itemid, string pszMkDocument)
    {
        return VSConstants.S_OK;
    }

    public int NotifyItemRenamed(IVsHierarchy pHier, uint itemid, string pszMkDocumentOld, string pszMkDocumentNew)
    {
        return VSConstants.S_OK;
    }

............
}

然后在我的包的 Initialize 方法中

我愿意

RegisterEditorFactory( new ProjectEditorFactory());

但是在我运行之后,在我向项目添加新项目后,事件处理程序没有被命中。

有谁知道如何赶上活动?

我真正想要的是在语法上添加一些文件,然后将依赖项创建到一个特定的文件。除了收听 ItemAdded 事件,还有人知道另一种方式吗?

谢谢

4

1 回答 1

0

您不希望在此处使用编辑器工厂,此时您想要提供自定义编辑器(如 Visual Studio 中的文本编辑器)。您应该考虑与项目系统集成。我不记得通过较新的项目系统执行此操作的方法,但您可能可以使用http://msdn.microsoft.com/en-US/library/microsoft.visualstudio.shell.interop.ivshierarchyevents(v =vs.110).aspx

于 2013-08-02T00:54:03.650 回答