Я только что внес изменения в проект, чтобы разрешить это. Начиная с версии 0.5.0 (обновите свой пакет NuGet)
Растровое форматирование
Вы можете установить форматер растрового изображения в шаблоне для вашего класса сообщений. Вот пример кода:
public class AsciiIsoMsg : Iso8583
{
// First you need to customise the template
// The message
private static readonly Template template;
static AsciiIsoMsg()
{
// Get the default template for the Iso8583 class
template = GetDefaultIso8583Template();
// change the bitmap formatter
template.BitmapFormatter = new AsciiFormatter();
}
// override the base class using the template and you will be using the bitmap formatter
public AsciiIsoMsg():base(template)
{
}
}
Задать длину Formatter поля
В методе static AsciiIso()
, если вы измените таким образом, вы измените поле 2 для использования форматера длины BCD:
// Set field 2 to use BCD formatter
template[2] = FieldDescriptor.BcdVar(2, 19, Formatters.Bcd);
Файл журнала
Чтобы отобразить сообщение в файле журнала, используйте метод .ToString()
в классе сообщений, например,
var msg = new AsciiIsoMsg();
msg.MessageType = Iso8583.MsgType._0200_TRAN_REQ;
msg[3] = "010000";
Console.WriteLine(msg.ToString());
Что дает:
0200:
[Fixed n 6 0006] 003 [010000]