0

也许这是一个非常基本的问题,如果是,请原谅我——我是 C# 的初学者。

我有一个用于向接收器发送命令的 WPF GUI。命令是 ASCII 文本。现在,我将通信部分分离到一个单独的项目中,因为除了 GUI 之外,我还有使用通信方法的控制台应用程序。通信 DLL 在普通套接字上使用异步方法。

现在的问题是我将有一个循环依赖。GUI 需要调用通信例程来发送消息,并且例程需要调用 GUI 来显示响应。我知道我可以创建一个通信继承的接口并绕过依赖关系,但这是最好的方法吗?或者这是我设计中的一个缺陷?我基本上想将 GUI 与底层通信层分离。

4

1 回答 1

2

您的库 (dll) 不应直接更新 GUI。你应该让它引发事件。理想情况下,事件也将处于更高的抽象级别(“成功接收消息”而不是“成功接收数据包”,但实际上取决于您要公开多少库的低级功能)

GUI(或控制台应用程序或完全不同的库)现在可以订阅事件并访问事件数据。GUI,作为更高层知道库,但库不应该知道 GUI(或控制台应用程序)

于 2010-08-02T10:13:06.670 回答