首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SCSF/CAB以编程方式添加CommandHandler

SCSF/CAB以编程方式添加CommandHandler
EN

Stack Overflow用户
提问于 2011-09-21 19:37:22
回答 2查看 216关注 0票数 0

有没有办法做到这一点:

代码语言:javascript
复制
[CommandHandler("ACommand")]
public void DoACommand(object sender, EventArgs e)
{
    //DoSomething
}

以编程方式?

我不想使用属性,因为"ACommand“在这种情况下会改变,因为它是基类中的通用实现。谢谢你,伊恩

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-07 01:26:59

当我开始使用SCSF开发时,我对命令/事件做了相当多的研究,但我还没有找到一种方法来做到这一点。在加载WorkItem时运行的方法中注册所有命令处理程序将非常有用,而不是使用属性将它们分散在整个应用程序中。

在您的例子中,我唯一能建议的就是使用一个静态类,它将所有命令处理程序的名称作为常量来包含,比如CommandHandler(CommandNames.CreateEmployeeCommand).这种方法提供了几个好处: 1.如果您的命令名发生更改,您只需在静态类中更改它;2.您可以创建一个基本CommandNames类(当您使用SCSF时会为您完成此操作),该基类可以由单个模块CommandNames类继承,从而允许您拥有全局命令和模块特定命令。

我想知道您是否确实找到了将此功能添加到您的解决方案中的方法,因为它将非常有帮助。

票数 1
EN

Stack Overflow用户

发布于 2015-01-15 20:49:04

您可以使用全局命令集合(可通过任何工作项实例访问),选择命令并为ExeceuteAction事件注册事件处理程序。

示例(VB-语法):

代码语言:javascript
复制
AddHandler workItem.Commands("ACommand").ExecuteAction, AddressOf DoACommand
RemoveHandlerHandler workItem.Commands("ACommand").ExecuteAction, AddressOf DoACommand
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7499073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档