【问题标题】:AOP for winformswinforms的AOP
【发布时间】:2008-10-23 23:35:32
【问题描述】:

如何在不使代码非常复杂的情况下捕获用户在 winform 应用程序中的点击? AOP 是答案吗?如何跟踪仪器?

【问题讨论】:

    标签: c# winforms click aop instrumentation


    【解决方案1】:

    这确实取决于您的实际要求。

    对于简单/示例/原型 winforms 应用程序,我建议使用基本的WinForms Event Handlers,并在处理程序方法中使用代码(前提是它不太重)。如果代码很重,包含硬业务规则并且不与表单交互,那么最好将该代码移动到另一个类并从事件处理程序中调用它。

    Aspect Oriented Programming 更进一步。它通常最好应用于大型项目。您仍然需要表单元素的事件处理程序(我建议坚持使用基于控件的事件处理程序 - 不要尝试创建自己的全局事件处理工具),但它们应该调用 Command 对象(参见 GangOfFour 中的 Command Pattern )。然后可以从应用程序中的任何位置调用这些命令对象。如果您需要检测,检测应该在那些 Command 对象而不是 WinForms 事件上。您可以利用Inversion of Control 容器(如Castle Windsor)将日志/审计注入命令,而无需使用Interceptor pattern 更改您的应用程序。 Here's an example from David Hayden

    【讨论】:

      【解决方案2】:

      在winforms中捕获点击的一般方法是处理Control.MouseClick。如果您想了解更多详细信息,还可以查看Control.MouseDownControl.MouseUp

      如果您提供有关您尝试做的事情的更多详细信息,我们可能会提出更有针对性的答案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多