代码之家  ›  专栏  ›  技术社区  ›  AllenG

使用XmlSerializer序列化到特定的XSD

  •  3
  • AllenG  · 技术社区  · 15 年前

    我有一个特定于业务的内部XSD,我们使用它来表示业务级别的异常(即:不一定是代码中的异常,而是流程中的错误),以便不同的业务部门可以在单元间流程失败时相互通知。

    我的任务是编写一个组件来记录这些异常,以及它们的原始请求和(如果可能的话)生成的响应。所有这些都是通过biztalk进行的,所以我不能只获取数据并将其写入数据库:我必须将XmlDocument返回到原始的biztalk业务流程,以便ExceptionHandling业务流程能够处理它。

    好吧,这一切都是有意义的(至少,在业务框架内-我也可以看到其他方法来实现这一点,但这个方法对我们有效)。问题是:我有一个Xsd,它有几个嵌套的元素,包括请求的原始XML,也可能是响应的原始XML。我可以创建一个类来保存所有这些内容。我可以获取传递给类的数据并创建一个实例。

    不是 实现IXmlSerializable并定制我的序列化,我可以强制XmlSerializer获取类的实例并将其映射到特定的xsd。

    XmlSerializer ser = new XmlSerializer(typeOf(myClass), "mySchema.xsd");
    ser.Serialize(myStream, myInstance);
    

    很理想,但任何方向都会有帮助。请注意,我使用的是VS2005。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Benny Skogberg    15 年前

    我发现XMlSerializer有点难以控制。我的建议是寻找另一种方法,比如XDocument,我觉得它在这些情况下非常灵活。

    XDocument Class Overview