我正在考虑使用Web服务作为处理程序来实现平台中立(即不是.NET MEF)技术来实现责任链模式。我希望能够通过部署新服务而不是编译新的CoR代码来添加更多CoR处理程序,只需更改配置信息即可。似乎挑战将是管理有关可用处理程序的元数据并确保处理程序符合接口。
我的问题:关于如何安全确保的任何想法: 1. Web服务正在实现该接口 2. Web服务正在实现基类行为,如调用后继者
因为在编译的代码中,我可以具有类型安全性,因此知道任何处理程序都是从抽象基类派生的,它确保了我想要的接口和行为。在服务领域似乎缺少这一点。
答案 0 :(得分:0)
这似乎是一个有效的问题,但却是一个相当简单的问题。
即使您在运行时加载原始代码之前从未见过的代码,您仍然可以获得打字系统的保护。
我认为这里的首选方法是使用包含实施者列表(您的链)的属性文件。然后在代码中,您将必须有一种方法在运行时实例化每个处理程序的实例以构造链。构造实例时,必须检查其类型。例如,在Java中,它将采用instanceof的形式(通常是可憎的,但是你可以获得加载方案的通过),或者isAssignableFrom。在Objective C中,它符合ToProtocol。
如果没有,则无法使用,您可以向控制台吐出错误。