ediFabric 6.7.7 - 通用EDI消息的验证

时间:2016-10-21 08:25:47

标签: c# edi edifabric

我正在使用新更新的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通过反射。

当然,我可以使用XsdSchemaCollection编写自己的Xml Serializer并对Xsd架构进行vaildate,但EdiMessage<S_ISA, S_GS>包含ValidateX12()方法,如果可能,我想使用它。

1 个答案:

答案 0 :(得分:1)

现在可以在6.8.2版中使用。你可以这样称呼它: var validation = new List(msg.Value.Validate());

它现在在内部解析xsd和格式。