Низкая производительность метода 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 для прямой записи в файл или поток.