入力の一部として要求された URL を使用する Nancy モジュールのカスタム シリアル化を使用したいと考えています。
ConfigureRequestContainer のオーバーライドでコンテキストを使用する依存関係を登録する必要があることを見てきました ( C# IOC および Request State in NancyFX で回答されているように)
public class NancyBootstrapper : DefaultNancyBootstrapper
{
protected override void ConfigureRequestContainer(
TinyIoCContainer container,
NancyContext context)
{
container.Register<JsonSerializer>(new CustomJsonSerializer(context));
}
}
そして、 IRegistrations インターフェースを使用してナンシーに別のシリアライザーを指定できることを見てきました ( Nancy TinyIoC を使用した JsonNetSerializer および JsonNetBodyDeserializer の構成で回答されているように)
public class JsonRegistration : IRegistrations
{
public IEnumerable<TypeRegistration> TypeRegistrations
{
get
{
yield return new TypeRegistration(typeof(JsonSerializer), typeof(CustomJsonSerializer));
}
}
public IEnumerable<CollectionTypeRegistration> CollectionTypeRegistrations { get; protected set; }
public IEnumerable<InstanceRegistration> InstanceRegistrations { get; protected set; }
}
最初の方法でシリアライザーを登録すると、Nancy に JSON シリアライゼーションに使用させることができません。
2 番目の方法で登録すると、現在の NancyContext のコピーを挿入してリクエストにアクセスできなくなります。メソッドが呼び出される前に、シリアライザーのインスタンスを作成しようとします。ConfigureRequestContainer
ここで何が欠けていますか?