c# - 从客户端自动设置属性
问题描述
我有点进退两难。考虑以下系统:
以及以下 API:
IModule GetModule(string moduleName);
void SetModule(string moduleName);
每个模块都包含一堆参数。
典型的工作流程如下:
- 获取一个模块(即客户端的本地副本)
- 从该模块修改感兴趣的参数
- 设置更新的模块(即调用SetModule通过服务/代理更新实际系统)
现在我在这个工作流程中遇到的问题是,当 Client1 更改参数时,第二个客户端可能会基于对系统内部状态的错误假设来做某事。
因此,需要将消息传递添加到此实现中以保持客户端同步,但在此之前,真正有帮助的是摆脱 SetModule() 方法并让参数在其值更改时自动更新在客户端。
问题是在客户端我们实际上有一个对象的副本而不是实际的系统对象,所以甚至有可能做这样的事情:
moduleA = GetModule(string moduleName);
moduleA.enable = true; -> But when doing this, the setter for this parameter is called to directly update the param value from within the system instead of the local copy.
解决方案
推荐阅读
- django - 限制对 Django 中对象的访问
- python - 如何使用 django 框架为用户提供在 python 中选择登录或注册的选项?
- javascript - 我在 javascript 中使用 onkeyup 函数,如果我按下键,我会得到不同的 ASCII 值
- matlab - 使用 Matlab 中的“画笔/选择数据”从绘图中提取数据
- c# - 如何获取通话记录手机号码 SIM 卡插槽?
- android - 通过 sql server 数据更改通知 android 应用程序
- c# - 如何反编译.net框架的IL代码
- laravel - 如何在 Laravel Query 中使用 CONCAT 函数
- mysql - 如何创建超过当日交易数量和交易限额的客户名单
- javascript - 如何在Vuejs中查看同一数组中的不同键