Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 概念(可能是事件代理?)_C#_.net - Fatal编程技术网

C# 概念(可能是事件代理?)

C# 概念(可能是事件代理?),c#,.net,C#,.net,对于.NET世界来说还是有点新鲜。我正在努力完成一项任务。我想学习它,所以一个概念或理论在这方面会很有帮助。我认为这将使用EventBroker的方法 我需要做的是创建多个对象,这些对象创建了到不同设备的TCPclient连接。(每个对象都有自己的TCPClient和地址)。我们称这个物体为“核心”。所以我有多个核心对象 这些核心对象中的每一个都可以有大量需要与之对话的“项目”(双向) 我想做的是,在初始化时,将所有项“注册”到它们各自的核心。在那之后,任何已经注册到核心的项目,其值/数据发生了

对于.NET世界来说还是有点新鲜。我正在努力完成一项任务。我想学习它,所以一个概念或理论在这方面会很有帮助。我认为这将使用EventBroker的方法

我需要做的是创建多个对象,这些对象创建了到不同设备的TCPclient连接。(每个对象都有自己的TCPClient和地址)。我们称这个物体为“核心”。所以我有多个核心对象

这些核心对象中的每一个都可以有大量需要与之对话的“项目”(双向)

我想做的是,在初始化时,将所有项“注册”到它们各自的核心。在那之后,任何已经注册到核心的项目,其值/数据发生了变化,我只希望它将数据发送到它的托管核心。当核心上的数据发生变化时(响应),将其发送到相应的项目


我希望这是有道理的。我真的只是想被指向正确的方向。我确实觉得,事件代理方法将是我的最佳选择。如果我错了,请纠正我。

似乎你需要一些中心位置来做一些事情,但我不太明白你当时想用这些东西做什么。我不知道您是否需要外部用户(通过internet)与您的服务交互,或者内部网场景是否足够

如果这些对象需要相互通信,可以使用中介设计模式事件代理

如果不需要跨对象通信,则可以使用服务定位器模式发布子模型


我在托管一些WCF服务,有时只是一个容器,在开始时实例化所需的服务。这将是一个穷人的集中解决方案。你所知道的书中没有提到这一点。:)

您可以手动执行,也可以使用WCF将其留给.NET。您可以将相应核心的实例传递给项(例如,作为构造函数参数)。项目可以订阅该实例事件(例如,
datareceived
),它们不会从其他核心接收事件。问题出在哪里还不清楚。