使用VB.net 4.0
我有一个基于MVVM的Winforms应用程序。我正在寻找一种简单的方法,可以将任何图层(甚至那些UI没有引用的图层)传递回UI以显示给用户。
我过去通过在“Common”程序集中创建一个“Communicator”类来完成此操作,而其他程序集都会引用它。
Public Class Communicator
Public Shared Sub NotifyUser(Message as string)
RaiseEvent SendMessage(Message)
End Sub
Public Shared Event SendMessage(MessageToSend as string)
End Class
UI将在程序启动时订阅SendMessage事件。任何想要将消息传递给用户的类都只需调用Shared NotifyUser方法,Communicator类就会通过SendMessage事件将给定的消息转发给UI。
这种方法的优点在于,从代码中的任何位置实现和超级易用都是微不足道的。
我认为这样做的缺点是对NotifyUser的调用遍布整个代码,使许多类依赖于Communicator类及其共享方法。出于某种原因,它只是感觉不对。
所以,我的问题是,在没有显着增加复杂性的情况下,实现相同效果的一些典型方法是什么?