【发布时间】:2012-02-25 05:04:44
【问题描述】:
我需要创建一个能够进入“只读”模式的 WCF 服务。在这种状态下,它不会为对数据库进行更改(如创建订单)的调用请求提供服务,但只会为只读请求(如验证用户)提供服务。如果它收到一个它不会服务的请求,它需要回传一个友好的消息和代码(例如,代码:100,描述:“服务处于只读模式,无法为这个请求提供服务”)。
我有近 100 个不同的调用,并希望实现一个可以在一个地方进行的解决方案(如 IDispatchMessageInspector),但我看不到任何方法可以对任何截获的 WCF 消息提供响应。我有一个标准响应类型,我会在所有请求上发回,并且希望在这些情况下也将其发回。该类型名为 ServiceResponse 并具有一个消息集合。这是一类代码和描述。
public class ServiceResponse
{
public List<Message> Messages {get; set;}
}
public class Message
{
public string Code {get; set;}
public string Description {get; set;}
}
有人可以为我提供有关如何执行此操作的指导吗?我已经用尽了所有搜索选项。
即使 WCF 中只有一种方法可以手动创建我要发回的 SOAP,只要我不必在每个服务调用中处理只读检查/响应,那也没关系。
谢谢!
【问题讨论】:
-
您的所有操作当前是否都返回“ServiceResponse”,或者是否将其添加到您的界面部分?
-
它们当前都返回一个 ServiceResponse。我将其作为一项要求提到的原因是因为消费者需要能够期望他们已经期望的相同类型的结果。
-
我正在使用 Ninject 及其拦截插件来处理请求。根据大小,将 IOC 容器添加到现有代码库中可能并非易事,但这是一种选择。
-
嗯,我一直想学习 Ninject,但对于这么小的项目,我可能没有足够的时间来学习。
-
IMO - 一个小项目是开始学习 Ninject 的好地方! :)