ユーザー セッションごとに 1 回だけ作成されるクラスのインスタンスが必要です。このようなクラスを TinyIoC に登録するにはどうすればよいですか? NancyFx を使用しています。
質問する
122 次
1 に答える
1
私は次のコードを書くことになりました:
public static class ContainerExtensions {
public static TinyIoCContainer.RegisterOptions SessionScoped<TRegisterType>(this TinyIoCContainer container, NancyContext context, Func<TRegisterType> factory) where TRegisterType : class
{
return container.Register<TRegisterType>((ctx, overloads) =>
{
var key = typeof(TRegisterType).FullName;
var instance = context.Request.Session[key] as TRegisterType;
if (instance == null) {
instance = factory();
context.Request.Session[key] = instance;
}
return instance;
});
}
}
Nancy.Session.InProc
NuGetを使用しました。
于 2016-01-31T16:18:08.403 に答える