从 Ax2009 返回 XMLDocument

发布于 2024-11-04 10:22:42 字数 496 浏览 0 评论 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。有没有办法做到这一点,或者我需要返回一个字符串并重新加载文档?

I have a function in Axapta as follows:

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

    // Build XML Document

    return xmlReturnDoc;
}

This returns an XML document. I’m then calling this from a .NET program using the business connector as follows:

Axapta ax;
object o;

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

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

However, I don’t seem to be able to cast this to a System.Xml.XmlDocument in .NET. Is there a way to do this, or do I need to return a string and reload the document?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ゝ偶尔ゞ 2024-11-11 10:22:42

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

对象类型之间没有自动转换。
有一些基本类型的隐式转换,但只有一种方法。
请参阅如何:在 X++ 和 CLR 基元类型之间进行封送

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

AX XMLDocument is not the same beast as CLR System.Xml.XmlDocument.

There is no automatic conversion between object types.
There are some implicit conversions of primitive types, but only one way.
See How to: Marshal Between X++ and CLR Primitive Types.

Reading How to: Call Business Logic Using .NET Business Connector leaves little doubt that the easy way is to return the XML string.

等数载,海棠开 2024-11-11 10:22:42

恕我直言,您可以将正确的类型传递到 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 文档。

IMHO, you can pass the correct type into Ax

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

}

and call this AX method from CLR :

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

AX works correctly with the CLR data types - you can generate NET XML document on the AX-side.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文