【发布时间】:2018-04-05 09:02:43
【问题描述】:
我有一些这样实现的 REST Web 服务:
[ServiceContract]
public interface IRESTService
{
[WebGet(UriTemplate = "GetEveryone", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
[OperationContract]
EveryoneDTO GetEveryone();
}
public class RESTService : IRESTService
{
public EveryoneDTO GetEveryone()
{
// [...] Some processing
return everyone;
}
}
我的everyone 对象要去哪里?我的意思是,必须发生一些事情才能将对象转换为 JSON 并发送它们。我的调试不会让我更进一步。
我对此感兴趣是因为,比方说,我想处理我发回的每个对象中包含的每个字符串(可能是出于编码目的),我将如何/在哪里能够实现拦截每个对象的中间件和可以在发送之前轻松更改它们吗?
【问题讨论】:
-
确实有 吨 的关于 WCF 可扩展性的文档,包括自定义消息检查器。你真的不应该错过。例如。 blogs.msdn.microsoft.com/carlosfigueira/2011/03/14/… 看看这里,例如,blogs.msdn.microsoft.com/carlosfigueira/2011/06/28/… 你有一个自定义 REST 消息检查器。
-
@WiktorZychla 确实,但我在
BeforeSendReply方法中处理Message对象格式时遇到了一些困难。怎么会变成这样,我不能在Message格式前一步操作我的对象吗?