我为visual studio项目创建了一个自定义命令,该命令在项目上单击鼠标右键即可看到.我想将项目文件夹路径等一些参数传递给命令EventArgs.是否可以为命令指定参数.

这是命令执行方法.

private void Execute(object sender, EventArgs e)
{
    ThreadHelper.ThrowIfNotOnUIThread();
    string message = string.Format(CultureInfo.CurrentCulture, "Inside {0}.MenuItemCallback()", GetType().FullName);
    string title = "Evaluate Project Command";

    // Show a message box to prove we were here
    VsShellUtilities.ShowMessageBox(
                                    package,
                                    message,
                                    title,
                                    OLEMSGICON.OLEMSGICON_INFO,
                                    OLEMSGBUTTON.OLEMSGBUTTON_OK,
                                    OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST);
}

我想从命令EventArgs获取Project文件路径,或者有什么方法可以做到这一点?

推荐答案

命令执行的方法签名中的EventArgs通常不直接包含此数据.然而,您可以通过访问DTE对象来检索项目详细信息,该对象代表开发环境本身.

看看这个例子:

https://github.com/NDiiong/DevAssist/blob/3a90dbbbd42c57dd74749f01e26ba30aeac68732/src/Commands/OpenBinFolderCommand.cs#L18

Csharp相关问答推荐

将序列化的IasyncESYS上传到Azure Blob存储的最佳方法是什么

无法将blob发送到Azure -缺少HTTP标头异常

为什么xslWriter不总是按照xslWriterSet中指定的格式格式化该文档?

如何禁用ASP.NET MVP按钮,以便无法使用开发人员控制台重新启用它

Blazor:类型或命名空间名称Components在命名空间中不存在''

Microsoft. SQLServer. Types(106.1000.6)在try 从用户定义的类型检索值时引发异常

TDLib与机器人共享电话号码

如何阻止注释被包含在C#release build. exe中

. NET在上一个操作完成之前,在此上下文实例上启动了第二个操作

如何在C#中使用正则表达式抓取用逗号分隔的两个单词?

从应用程序图API调用访问所有者字段

方法从数据表中只 Select 一个条件?

如何将MongoDB序列化程序设置为内部对象属性

Savagger使用Fastendpoint更改用户界面参数

为什么我可以用硬编码的集合而不是变量来设置没有setter的IList属性的值?

Celler ArgumentExpression是否期望在所有情况下都捕获允许空值的运算符?

未在Windows上运行的Maui项目

VS代码扩展无法在新版本扩展C#中运行从v2.10.28开始

使DefaultIfEmpty返回空

嵌套Blazor组件内的验证