Низкая производительность метода EdiMessage.ToEdi в ediFabric

Я использую платформу ediFabric для создания заказов на покупку в формате X12 850 версии 040010. Я использую класс TS850 и вызываю метод ToEdi() для создания файла. Единственная проблема, с которой я сталкиваюсь, заключается в том, что производительность метода низкая (для каждого вызова требуется пара сотен мс), и мне нужно создать сотни файлов.

      public string[] GeneratePurchaseOrders(TS850[] ts850s)
{
   var settings = new X12WriterSettings();

   var separators = Separators.X12;

   separators.Segment = '~';
   separators.ComponentDataElement = '>';

   settings.Separators = Separators;

   List<string> files = new List<string>(ts850s.Length);

   for (var ts850 in ts850s)
   {
       files.Add(ts850.toEdi(settings));
   }

   return files.ToArray();
}

Есть ли более эффективный метод для создания большого количества файлов?

1 ответ

Почему вы используете недокументированный метод ToEdi()? Он не упоминается ни в примерах, ни в документации, поэтому мне любопытно, почему вы решили его использовать.

ToEdi() сначала записывает данные EDI в поток, а затем загружает поток в строку.

Для записи больших сообщений я бы рекомендовал использовать методы async Write для прямой записи в файл или поток.

Записать в файл

Запись в асинхронный поток

Другие вопросы по тегам