我必须从Inbound Header中读取元素......
我正在使用WCF.InboundHeaders将入站标头分配给字符串....
现在我的问题是我的inbounde标题看起来像这样
InboundHeaders
<headers><s:userid xmlns:s="http://www.w3.org/2003/05/soap-envelope">testuser</s:userid>
<s:applicationid xmlns:s="http://www.w3.org/2003/05/soap-envelope">assistworkerweb</s:applicationid>
<a:Action s:mustUnderstand="1" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">http://Request</a:Action><a:To s:mustUnderstand="1" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
现在我需要从中提取用户ID ..如何从中提取用户ID ..
答案 0 :(得分:0)
您还没有提到存储字符串的位置或方式(使用WCF.InboundHeaders填充),但是我会使用XPath的简单片段来提取UserId。如果你使用C#帮助器提取它,你可以做一些事情(注意,这是未经测试的,但它几乎就是那样):
XmlDocument doc = new XmlDocument();
doc.Load([WCF.InboundHeaders Xml Fragment]);
// Create an XmlNamespaceManager to add 'soap-envelope' namespace
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("s", "http://www.w3.org/2003/05/soap-envelope");
// Select the UserId
XmlNode userId = doc.SelectSingleNode("/headers/s:userid", nsmgr);
Console.WriteLine(userId.InnerXml);
您可能还希望将Xml片段序列化为.Net对象并以此方式检索UserId。