0

我正在考虑使用 Web 服务作为处理程序来实现责任链模式的平台中立(即不是 .NET MEF)技术。我希望能够通过部署新服务而不是编译新的 CoR 代码来添加更多的 CoR 处理程序,只需更改配置信息。似乎挑战将是管理有关可用处理程序的元数据并确保处理程序符合接口。

我的问题:关于如何安全地确保的任何想法: 1. Web 服务正在实现接口 2. Web 服务正在实现基类行为,例如调用后继

因为,在编译后的代码中,我可以拥有类型安全性,因此知道任何处理程序都派生自抽象基类,以确保我想要的接口和行为。服务领域似乎缺少这一点。

4

1 回答 1

0

这似乎是一个有效的问题,但却是一个相当简单的问题。

即使您稍后在运行时加载原始代码以前从未见过的代码,您仍然可以得到打字系统的保护。

我认为这里的首选方法是使用带有实施者列表(您的链)的属性文件。然后在代码中,您将必须有一种方法在运行时实例化每个处理程序的实例以构造链。当你构造实例时,你必须检查它的类型。例如,在 Java 中,这将采用 instanceof 的形式(通常是可憎的,但您会获得加载场景的通行证)或 isAssignableFrom。在Objective C 中,它符合ConformsToProtocol。

如果没有,则无法使用,您可以将错误吐出到控制台。

于 2013-03-06T06:53:48.820 回答