Десериализатор EDI работает в другом формате

#c# #asp.net #.net #.net-core #edi

Вопрос:

          var grammar = CustomEDIGrammar.GetGrammar();
            CAA850 interchange;

            try
            {
                using (var stream = new StreamReader(tmpfilepath))
                {

                interchange = new EdiSerializer().Deserialize<CAA850>(stream, grammar);
                }
            }
            catch(Exception ex)
            {
                var expmsg = ex;
                throw;
            }
 

При десериализации документа EDI я получаю ошибку, потому что он поставляется в другом формате.

Мой грамматический формат выглядит следующим образом, в отличие от обычного.

  public static EdiGrammar GetGrammar()
        {
            return new CustomEDIGrammar()
            {
                SegmentNameDelimiter = '    ',
                ComponentDataElementSeparator = '>',    
                DataElementSeparator = '    ',
                DecimalMark = '.',
                ReleaseCharacter = null,
                Reserved = new char[0],
                SegmentTerminator = ' ',
                ServiceStringAdviceTag = null,
                InterchangeHeaderTag = "EASI",
                FunctionalGroupHeaderTag = "01",
                MessageHeaderTag = "02",
                MessageTrailerTag = "09",
                FunctionalGroupTrailerTag = "EASX",
                InterchangeTrailerTag = "IEA",
            };
        }
 

как видно, разделитель имен сегментов и разделитель элементов данных различаются