我需要每个用户会话只创建一次类的实例。如何在TinyIoC中注册这样的课程?我正在使用NancyFx。
答案 0 :(得分: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。