ediFabric 6.7.7 - проверка общего сообщения EDI

Я использую обновленную версию ediFabric 6.7.7 и пытаюсь проверить общее сообщение - поэтому я не могу привести его к определенному классу конкретной версии.

У меня проблема с сериализацией XML.

Этот код работает (он очень похож на код в модульных тестах ediFabric)

var invoice = (M_810) msg.Value;
var validation  = new List<string>(invoice.ValidateX12(xsdStream));

но это исключение

var validation  = new List<string>(msg.Value.ValidateX12(xsdStream));

System.InvalidOperationException: тип EdiFabric.Rules.X12004010810.M_810 не ожидался. Используйте атрибут XmlInclude или SoapInclude, чтобы указать типы, которые статически не известны

Поэтому мой вопрос - можно ли как-то проверить обобщенное сообщение, без явного приведения его к определенному классу.

Здесь я получаю правильную схему через GS Header и ST01 через рефлексию.

Конечно, я могу написать свой собственный Xml Serializer и vaildate для схемы Xsd, используя XsdSchemaCollection, но EdiMessage<S_ISA, S_GS> содержит ValidateX12() метод, и я хочу использовать его, если это возможно.

1 ответ

Решение

Это теперь доступно в версии 6.8.2. Вы можете назвать это так: var validation = new List(msg.Value.Validate());

Теперь он внутренне разрешает xsd и формат.

Другие вопросы по тегам