我需要一个类的实例在每个用户会话中只创建一次。如何在TinyIoC中注册这样的类?我使用的是NancyFx。
发布于 2016-02-01 00:18:08
我最终编写了以下代码:
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。
https://stackoverflow.com/questions/35087760
复制相似问题