【问题标题】:Returning XMLDocument from Ax2009从 Ax2009 返回 XMLDocument
【发布时间】:2011-04-28 08:54:36
【问题描述】:

我在Axapta中有一个功能如下:

static client XMLDocument GetXmlData()
{
    XMLDocument xmlReturnDoc = new XMLDocument();

    // Build XML Document

    return xmlReturnDoc;
}

这将返回一个 XML 文档。然后,我使用业务连接器从 .NET 程序调用它,如下所示:

Axapta ax;
object o;

ax = new Axapta();
ax.Logon(null, null, null, null);

o = ax.CallStaticClassMethod(“MyClass”, “GetXmlData”);

但是,我似乎无法将其转换为 .NET 中的 System.Xml.XmlDocument。有没有办法做到这一点,还是我需要返回一个字符串并重新加载文档?

【问题讨论】:

    标签: .net axapta dynamics-ax-2009 business-connector


    【解决方案1】:

    AX XMLDocument 与 CLR System.Xml.XmlDocument 不同。

    对象类型之间没有自动转换。 有一些原始类型的隐式转换,但只有一种方式。 见How to: Marshal Between X++ and CLR Primitive Types

    阅读How to: Call Business Logic Using .NET Business Connector 毫无疑问,最简单的方法就是返回 XML 字符串。

    【讨论】:

      【解决方案2】:

      恕我直言,您可以将正确的类型传递给 Ax

      void netGetXmlData(System.Xml.XmlDocument netXml)
      {
          XMLDocument xmlDoc = GetXmlData();
          netXml.set_InnerText(xmlDoc.text());
      
      }
      

      并从 CLR 调用此 AX 方法:

      ax.CallStaticClassMethod(“MyClass”, “GetXmlData”, xmlDoc);
      

      AX 可以与 CLR 数据类型一起正常工作 - 您可以在 AX 端生成 NET XML 文档。

      【讨论】:

        猜你喜欢
        • 2011-09-30
        • 2023-03-26
        • 2012-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-07
        • 2017-05-01
        • 2023-04-04
        相关资源
        最近更新 更多