从Ax2009返回XMLDocument

时间:2011-04-28 08:54:37

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

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

2 个答案:

答案 0 :(得分: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字符串。

答案 1 :(得分: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文档。

相关问题