我正在编写一个外接程序来识别类中的所有方法(函数,过程和事件);
我想根据上述类型添加特定的代码集。目前,我可以使用功能和程序进行分类 vsCMFunction.vsCMFunctionFunction和vsCMFunction.vsCMFunctionSub。
如何使用相同的方法识别事件及其关联的控件名称。
答案 0 :(得分:0)
以递归方式浏览文件的代码元素,请参阅HOWTO: Navigate the code elements of a file from a Visual Studio .NET macro or add-in。然后,每个EnvDTE.CodeElement都有一个Kind属性,允许您在代码元素中标识命名空间,类,事件,方法,属性,委托等。要获取特定属性,可以将EnvDTE.CodeElement强制转换为特定代码元素如EnvDTE.CodeClass,EnvDTE80.CodeEvent。等
现在,如果你想要识别事件处理程序的方法(这与识别类可以引发的事件不同),那就不容易了答案和代码模型没有帮助。对于VB.NET,如果它们包含" Handles"声明中的子句,对于C#,您需要在设计器文件中获取事件处理程序绑定。或者你可以尝试IEventBindingService。我的另一篇文章可以帮助你,因为如果做了相关的事情(将方法绑定到事件处理程序):HOWTO: Add an event handler from a Visual Studio add-in