0

我在 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。有没有办法做到这一点,还是我需要返回一个字符串并重新加载文档?

4

2 回答 2

1

AXXMLDocument与 CLR 不同System.Xml.XmlDocument

对象类型之间没有自动转换。有一些原始类型的隐式转换,但只有一种方式。请参阅如何:在 X++ 和 CLR 原始类型之间编组

阅读如何:使用 .NET Business Connector 调用业务逻辑毫无疑问,最简单的方法是返回 XML 字符串。

于 2011-04-28T11:54:01.147 回答
0

恕我直言,您可以将正确的类型传递给 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-05-03T11:52:12.833 回答