わかった。私はそれを考え出した。
を継承するクラスを作成し、コンストラクターでパラメーターTemplateBase<T>
を受け取ります。TextWrite
public class TextWriterTemplate<T> : TemplateBase<T>
{
private readonly TextWriter _tw;
public TextWriterTemplate(TextWriter tw)
{
_tw = tw;
}
// override Write and WriteLiteral methods, write text using the TextWriter.
public override void Write(object value)
{
_tw.Write(value);
}
public override void WriteLiteral(string literal)
{
_tw.Write(literal);
}
}
次に、テンプレートを次のように使用します。
private static void Main(string[] args)
{
using (var sw = new StreamWriter(@"output.txt"))
{
var config = new FluentTemplateServiceConfiguration(c =>
c.WithBaseTemplateType(typeof(TextWriterTemplate<>))
.ActivateUsing(context => (ITemplate)Activator.CreateInstance(context.TemplateType, sw))
);
using (var service = new TemplateService(config))
{
service.Parse("Hello @Model.Name", new {Name = "Waku"}, null, null);
}
}
}
の内容output.txt
はHello WAKU
.