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 и ST01 через отражение.

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


person fly_ua    schedule 21.10.2016    source источник


Ответы (1)


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

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

person Don Zoeggerle    schedule 21.10.2016
comment
Спасибо, я постараюсь - person fly_ua; 22.10.2016