动态组织和调用C#方法
相对较新的C#,寻找执行以下操作的“最佳实践”方式:
我有一个类(传感器)与公共方法,如“CommunicationStart”,“DoThing1”,“DoThing2”. 在调用这些方法之前,该类配置了传感器“Model” 基于该模型,公共方法应采用不同的代码路径.如果我要静态地执行此操作,则在每个公共方法中切换模型都可以解决问题. 我想动态地这样做以帮助长期支持.在每个公共方法中包装动态加载代码的“正确”方法是什么?反射?代表们?动态加载的函数应该驻留在哪里?他们应该和他们的公共包装人员在同一个班级,还是住在新的班级? 我正在寻找更多的“正确”方法和组织,而不是语法,因为我可以自己解决这个问题.非常感谢! 解决方法
我希望我能正确理解你的问题.
以下是为常见方法和传感器实现创建可扩展系统的方法: 用于处理公共代码(传感器公共方法需要): 如果动态加载程序集,则可以使用Reflection查找实现公共接口的所有类,例如ISensorMethod(在通用程序集中).所有组件都必须知道它. 您的主代码(加载程序集的代码)可以在内部保留List< ISensorMethod>引用所有加载的可重用方法. 对于“传感器”类: 您可以执行相同的系统:动态加载程序集,找出所有“传感器”或“ISensor”类. public interface IMethodCaller { void CallMethodByKey(string key); } 然后这是一种使用的可能性: public class ElectricSensor : Sensor { public ElectricSensor(IMethodCaller caller): base(caller) { } public void CommunicationStart() { base.Caller.CallMethodByKey("START_COMMON"); base.Caller.CallMethodByKey("INITIALIZE_ELECTRIC"); } // (...) } 可以使用工厂设计模式完成正确传感器类的实例化… 最好的祝福, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |