我有一个合同如下所示的 WCf 服务。
[MessageContract]
public class ServiceRequest
{
[MessageBodyMember]
public int RequestId { get; set; }
[MessageBodyMember]
public OrderDetails OrderDetails { get; set; }
}
[DataContract]
public class OrderDetails
{
[IsLogRequired]
public int OrderId { get; set; }
[IsLogRequired]
public int Quantity { get; set; }
public string CustomerName { get; set; }
}
[IsLogRequired] 是自定义属性。
收到请求时,我们需要获取请求中具有“[IsLogRequired]”属性的所有属性。我们希望将其作为通用解决方案来实现,以便可以将其插入所有服务中。
我们考虑使用“MessageInspector”来实现“IDispatchMessageInspector”。
如何从 IDispatchMessageInspector.AfterReceiveRequest() 方法的“System.ServiceModel.Channels.Message”参数获取实际请求对象?
如果我使用了错误的界面或错误的方法,请纠正我。对此还有其他解决方案吗?