我有WCf服务与合同如下所示。如何从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”参数中获取实际的请求对象?
如果我使用错误的界面或错误的方法,请纠正我。任何其他解决方案?