AOP为winforms

时间:2008-10-23 23:35:33

标签: c# winforms click aop instrumentation

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

2 个答案:

答案 0 :(得分:5)

这取决于您的实际需求。

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

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

答案 1 :(得分:0)

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

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