我正在尝试构建一个使用插件的核心应用程序,以便核心永不改变,每次我们获得新客户端时,我们都会为它们编写一个模块。我们使用新的客户类实现了一个名为IClientPlugin的接口。如何让一个核心类调用一个客户类?
这是使用Compact Framework 3.5和Windows Mobile 6.5.3。
所以这是我需要acheive:
这是一个仓库管理系统。第一项任务是从卡车的产品中接收手持设备扫描条码的条形码。
当用户点击接收菜单项时,核心模块就会启动。
的核心方法是 - callClientMethod()
我知道客户的名字,它是在登录存储在一个全局变量和类将是{clientname}.cs
并包含一个名为processReceiving()
方法。
我知道如何实例化这个对象。
问题是:有没有一种方法可以动态创建客户端类的实例,而无需硬编码case语句?
例如,假设我有2个客户端Acme和Widgets。他们每个人都得到一个客户端类,即Acme.cs
和Widgets.cs
如果我登录为阿克米或小工具我想要的代码,以动态创建客户端类的实例,我的身份登录,使核心代码没有改变因为只要为他们添加模块,我就可以添加更多的客户端。
伪例如:
var myClient = New (Clientname)();
这是可能的,或者有更好的设计方法,或者说是开关/ case语句neccessary邪?
角括号会被系统所占用,所以我将它改为'{clientname} .cs'。不是一个C#程序员我不知道如果这是可以接受的指示样板。 – Verbeia
我想人们仍然会感谢佛贝拉。 –
客户类是否驻留在同一个程序集中? – misha