Dee*_*zed 8 .net c# xml web-services xml-deserialization
我有一个.Net webserivce接受XML字符串格式.XML发送到webserivce的字符串可以表示系统中的任何Object.我需要检查第一个节点,找出反序列化XML字符串的对象.为此,我将不得不将XML加载到XMLDocument(不想使用RegEx或字符串比较).我想知道是否有一种方法来反序列化XMLDocument/XMLNode而不是反序列化字符串以节省一些性能?序列化XMLNode字符串会不会有任何性能优势?
加载XMLDocument的方法
public void LoadFromString(String s)
{
m_XmlDoc = new XmlDocument();
m_XmlDoc.LoadXml(s);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Mar*_*ell 22
如果你有一个XmlDocument,你可以XmlNodeReader用作XmlReader传递给XmlSerializer,但我想知道以其他方式做它会更好; 使用XmlReader以获得最外层的元素名称,并给这对XmlSerializer...
[XmlRoot("foo")]
public class Foo
{
[XmlAttribute("id")]
public int Id { get; set; }
}
static class Program
{
static void Main()
{
string xml = "<foo id='123'/>";
object obj;
using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
{
reader.MoveToContent();
switch (reader.Name)
{
case "foo":
obj = new XmlSerializer(typeof(Foo)).Deserialize(reader);
break;
default:
throw new NotSupportedException("Unexpected: " + reader.Name);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33957 次 |
| 最近记录: |