#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",
};
}
как видно, разделитель имен сегментов и разделитель элементов данных различаются