Я не думаю, что можно ссылаться на внешние файлы внутри определяемого пользователем устройства вывода. Вы в основном обрабатываете построчно и выводите в потоки.
Определяемый пользователем модуль вывода имеет модель программирования, и я не вижу, чтобы она поддерживала доступ к чему-либо вне сборки. Модель программирования, определяемая пользователем,
Я хотел бы предложить следующее: определить логические флаги для различных форматов вывода, которые вы хотите поддерживать, и затем соответствующим образом обработать строки. Таким образом, вы можете иметь один выход для поддержки нескольких форматов вывода.
Уже встроенный преобразователь Outputters.Text () поддерживает несколько форматов путем изменения разделителя. Вы также можете думать о чем-то похожем.
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text.txt" USING Outputters.Text();
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_outputHeader.txt" USING Outputters.Text(outputHeader: true);
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_charFormat.txt" USING Outputters.Text(charFormat: "string");
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_delimiter.txt" USING Outputters.Text(delimiter: '|');
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_dateTimeFormat.txt" USING Outputters.Text(dateTimeFormat: "D");
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_encoding.txt" USING Outputters.Text(encoding: Encoding.UTF32);
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_escapeCharacter.txt" USING Outputters.Text(escapeCharacter: ':');
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_nullEscape.txt" USING Outputters.Text(nullEscape: "null");
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_quoting.txt" USING Outputters.Text(quoting: false);
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_rowDelimiter.txt" USING Outputters.Text(rowDelimiter: "\u0003");
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_charFormat_nullEscape_escapeCharacter.txt" USING Outputters.Text(charFormat: "string", nullEscape:"NULL", escapeCharacter:'#');
OUTPUT @sampleData TO "/Output/ReferenceGuide/BuiltIn/UDOs/Text_charFormat_encoding.txt" USING Outputters.Text(charFormat: "string", encoding:Encoding.Unicode);
Поскольку вы обрабатываете строку за строкой, в идеале вам не нужен файл шаблона. Вы можете обрабатывать логи c в сборке. но если вам нужен файл шаблона, вы можете сохранить файл в файле ресурсов и развернуть его вместе со сборкой. Вы также можете определить файл конфигурации и развернуть его вместе со сборкой, исходя из необходимости.