代码之家  ›  专栏  ›  技术社区  ›  Andy White

XML-HTTP-POST在.NET中的集成

  •  3
  • Andy White  · 技术社区  · 17 年前

    我正在从事一个与外部公司集成的.NET项目。这家公司将通过HTTP POST(原始XML,而不是SOAP)向我们发送XML消息。他们将向我们发送三种不同类型的XML消息,它们都有自己的XSD。这些XSD之间没有继承层次结构,它们基本上都是独立的XML“实体”

    必须有更好的方法来做到这一点。。。WCF中是否有一些东西可以通过纯XML自动完成这项工作?或者是否有可以动态序列化多个类型的XML序列化程序?还有其他建议吗?

    5 回复  |  直到 17 年前
        2
  •  1
  •   Keltex    17 年前

    XMLSerializer的唯一问题是它非常脆弱。更改XML以获得更多功能,可能会破坏客户端。我认为最好自己解析XML。可能使用Linq XDocument/XElement?

        3
  •  1
  •   Tim Long    17 年前

    LINQtoXML类非常灵活且易于使用。您可以创建一个新的XElement并插入XML字符串。

    XElement xml = XElement.Parse(receivedXmlString);
    

    工作完成了。

    Anders Heijlsberg在MIX07上就这一点进行了精彩的演讲。” Using LINQ to Dramatically Improve Data Driven Development in Web Applications “。你可能会发现这段视频很有用。Linq到XML的内容大约需要26分钟。

        4
  •  0
  •   Cheeso    17 年前

    我将使用XML序列化程序,只是以一种比您目前所做的更通用的方式。

    在我看来,所谓的XML序列化程序的“脆弱性”不是问题。如果您使用依赖于XSD的XML数据绑定技术,XML通常是脆弱的,XML序列化也是如此。脆弱的不是XML序列化本身。模式可能很脆弱。基于模式的方法(包括.NET中的XML序列化)可能很脆弱,如果模式本身没有考虑到进化的话。例如,适当使用xsd:any和xsd:xmlAny、消息版本标记等。好消息是,有很好的指导来设计灵活的模式,可以优雅地发展。

    但是,这一切可能都不是问题,因为模式已经存在。在任何情况下,都不会通过使用XML序列化程序向系统添加“脆性”。

        5
  •  -1
  •   R Ubben    17 年前

    为什么不使用XmlReadMode.Auto将其读入数据集?然后,您就有了一个可以根据需要读取的对象—您可以查看表[0]以查看您拥有的对象。

    推荐文章