3

我正在尝试通过菜单找到所有启用的 resharper 命令。我可以使用以下代码找到所有菜单项。但是我找不到如何从 DTE 命令集合中获取实际命令。

var resharper = ((CommandBars)_dte.Application.CommandBars)["RESHARPER"];
var refactor = (CommandBarPopup)resharper.Controls["&Refactor"].Control;
foreach (var c in refactor.Controls)
{
    var cbb = c as CommandBarButtonClass;
    if (cbb != null)
    {
        yield return new VoiceCommand
        {
            Command = _dte.Commands.Item(???),
            Key = cbb.accName,
        };  
    }
}

我应该使用什么属性来查找命令(上面的???)?

谢谢你,埃里克

4

1 回答 1

1

您想使用CommandInfo 方法,如下所示:

Guid guid;
int id;
_dte.Commands.CommandInfo(cbb, out guid, out id);
yield return new VoiceCommand
{
    Command = _dte.Commands.Item(guid, id),
    Key = cbb.accName,
};  
于 2013-06-11T07:26:31.817 回答