我正在尝试通过菜单查找所有启用的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,
};
}
}
我应该使用什么属性来查找命令(上面的???)?
谢谢,
埃里克
最佳答案
您要使用CommandInfo method,如下所示:
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,
};