gpt4 book ai didi

c# - 从 WCF 架构验证器中抛出自定义响应

转载 作者:太空宇宙 更新时间:2023-11-03 15:13:25 27 4
gpt4 key购买 nike

我正在编写一个服务并实现了 IDispatchMessageInspector 类并覆盖了 AfterReceiveRequest 函数。

我真正想做的是在验证无效时不抛出任何异常。我想构建自己的响应并将其发回。

我该怎么做?我根本不想发回 SOAP 消息。

public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
{
try
{
ValidateMessage(ref request);
}
catch (FaultException e)
{
throw new FaultException<CustomResponse>( new CustomResponse { Success = false, ErrorMessage = e.Message});

}
return null;
}

看起来我必须抛出一个异常?

谢谢

最佳答案

考虑使用 BeforeSendReply创建消息。

            void IDispatchMessageInspector.BeforeSendReply(ref System.ServiceModel.Channels.Message reply, object correlationState)
{
try
{
ValidateMessage(ref reply);
}
catch (FaultException fault)
{
// handle the fault and create the reply
// choose one of the CreateMessage overloads
reply = Message.CreateMessage(reply.Version, "SOME MESSAGE");
}
}

有关 CreateMessage 的其他重载,请参阅以下内容。

https://msdn.microsoft.com/en-us/library/system.servicemodel.channels.message.createmessage(v=vs.110).aspx

关于c# - 从 WCF 架构验证器中抛出自定义响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40096079/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com