首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TinyIoC中的会话作用域实例

TinyIoC中的会话作用域实例
EN

Stack Overflow用户
提问于 2016-01-29 23:10:34
回答 1查看 122关注 0票数 1

我需要一个类的实例在每个用户会话中只创建一次。如何在TinyIoC中注册这样的类?我使用的是NancyFx。

EN

回答 1

Stack Overflow用户

发布于 2016-02-01 00:18:08

我最终编写了以下代码:

代码语言:javascript
复制
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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35087760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档