我开始基于Observable模式创建一个日志系统。为此我使用Reactive Extensions。 我有一个名为ILogInfo的IObservable和一个名为ILogObserver的IObserver。 我有一个使用共享库的各种模块的主应用程序。每个模块都实现了一个ILogInfo观察器,这些模块可以并行工作。我的问题在于,我想仅观察在我的模块范围内注册的ILogInfo。每个应用程序模块的多个记录器实例
在此方案中,我有两个模块(模块A和模块B),每个模块使用经由ILogInfo推送信息许多文库。当LibC推送一个新的ILogInfo时,我希望只有调用模块能够捕获(观察)这些信息。例如,当呼叫来自模块B时,我不需要模块A观察到的信息。我怎么能这样做?
如何在ILogInfo中设置'发件人'字段?然后你可以将日志推送到公共总线上,并且消费者可以使用logBus.Where(l => l.Sender == moduleA) – 3dGrabber
过滤流。感谢您的评论,但是如果我这样做,我必须将发件人信息转发目前我有太多的库来考虑这个解决方案。 –