2016-10-21 8 views
0

新しいediFabric 6.7.7を使用しています。一般的なメッセージの検証を試みています。特定のバージョンの特定のクラスにキャストできません。ediFabric 6.7.7 - 一般的なEDIメッセージの妥当性確認

xmlシリアル化に問題があります。このコードは動作

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

(それはediFabricユニットテストのコードにかなり類似している)が、これは例外を

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

System.InvalidOperationExceptionがスロー:タイプ EdiFabric.Rules .X12004010810.M_810は期待されませんでした。 が静的​​に知られていないタイプを指定する XmlIncludeまたはSoapInclude属性を使用し

だから私の質問です - 明示的に特定のクラスにキャストoを\ wは、一般的なメッセージを検証するために何とか可能です。

ここで正しいスキーマを取得する方法は、GSヘッダーとST01を経由して行います。

もちろん私はXsdSchemaCollectionを使用してXSDスキーマに対して独自のXmlシリアライザを作成できますが、EdiMessage<S_ISA, S_GS>にはValidateX12()というメソッドが含まれていますので、可能であれば使用したいと思います。

答えて

1

これはバージョン6.8.2で使用できるようになりました。あなたはそれを次のように呼び出すことができます: var validation = new List(msg.Value.Validate());

これで、xsdとフォーマットが内部的に解決されます。

+0

ありがとうございます。 –

関連する問題