2012-09-28 42 views
0

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

我的问题:我如何能保证安全的任何想法: 1. Web服务实现 2. Web服务实现的基类行为的接口,比如调用继任

因为,在编译的代码,我可以具有类型安全性,因此知道任何处理程序都来自抽象基类,以确保我想要的接口和行为。这似乎在服务世界中缺失。

+1

那么你的问题是什么? – Cratylus

+0

看到我上面的漫游。 –

回答

0

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

即使您以后在运行时加载代码,原始代码以前从未见过,仍然可以保护输入系统。

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

如果没有,它不能使用,你可以向控制台吐出一个错误。