【发布时间】:2009-11-04 11:56:18
【问题描述】:
我有两个项目 1:windows 窗体项目和 2:一个业务逻辑项目,它递归地遍历文件系统以查找特定文件。
我希望 Windows 项目订阅一个隐藏在名为 recurse 的类中的事件。我遇到的问题是递归类的实例是在业务逻辑项目的外观类中实例化的。
windows 窗体项目通过这样的外观调用业务逻辑:
FileAnalyzerFacade fileAnalyzerFacade = new FileAnalyzerFacade();
fileAnalyzerFacade.WalkDirectory(path, searchFilter));
在项目 2 中,FileAnalyzerFacade() 创建了 Recurse() 类的实例。 Recurse() 类在找到文件时引发事件。所以windows窗体对Recurse()类一无所知,只知道外层FileAnalyzerFacade()。
门面有以下订阅:
recurse.FileFound += new FilePropertyEventHandler(analyzeFile);
当触发事件时,analyzeFile() 会运行。
这一切都很好,因为 FileAnalyzerFacade() 创建了递归类的实例。 如何让 windows 项目订阅递归类中引发的事件?
【问题讨论】:
标签: c# events facade subscribe