There may be times where you need to identify the OperationContract name in WCF MessageDispatcher and do some processing based on that. Here is how you can do that;
MessageBuffer buffer = request.CreateBufferedCopy(Int32.MaxValue);
MessageProperties props = request.Properties;
string action = props["HttpOperationName"].ToString(); //here you will get the OperationContract name
In case of WCF Endpoint
In the AfterReceiveRequest method, do the following to get the Operation name;
MessageBuffer buffer = request.CreateBufferedCopy(Int32.MaxValue);
Message originalMessage = buffer.CreateMessage();
XmlDictionaryReader xmlDict = orginialMessage.GetReaderAtBodyContents();
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlDict.ReadOuterXml());
string action = doc.DocumentElement.Name; //here you will get the OperationContract name
In case of WCF REST Endpoint
In the AfterReceiveRequest method, do the following to get the Operation name;
MessageProperties props = request.Properties;
string action = props["HttpOperationName"].ToString(); //here you will get the OperationContract name
No comments:
Post a Comment