Возвращение XMLDocument из Ax2009 - PullRequest
0 голосов
/ 28 апреля 2011

У меня есть функция в 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”);

Однако мне кажется, что я не могу преобразовать это в System.Xml.XmlDocument в .NET. Есть ли способ сделать это, или мне нужно вернуть строку и перезагрузить документ?

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

AX XMLDocument не то же самое животное, что и CLR System.Xml.XmlDocument.

Нет автоматического преобразования между типами объектов.Есть некоторые неявные преобразования примитивных типов, но только один путь.См. Как выполнить маршал между примитивными типами X ++ и CLR .

Чтение Практическое руководство. Вызов бизнес-логики с использованием .NET Business Connector не оставляет сомнений в том, что простой способвернуть строку XML.

0 голосов
/ 03 мая 2011

ИМХО, вы можете передать правильный тип в Ax

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

}

и вызвать этот метод AX из CLR:

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

AX работает правильно с типами данных CLR - вы можетегенерировать NET XML документ на стороне AX.

...