windsor错误“CallContextLifetimeScope未标记为可序列化”。 NHibernate会话

时间:2012-02-27 10:03:59

标签: c# nhibernate fluent-nhibernate castle-windsor

我试图在我的NHibernate会话中使用范围生活方式(我使用流利的)我是一个Windows Azure角色。

初始化会话工厂时,我得到以下异常:

  

键入' Castle.MicroKernel.Lifestyle.Scoped.CallContextLifetimeScope'在汇编' Castle.Windsor,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 407dd0808d44fbdc'未标记为可序列化。

会议注册:

container.Register(Component.For<ISession>()
                .UsingFactoryMethod(k => k.Resolve<ISessionFactory>().OpenSession())
                .LifestyleScoped()
             );

实现:

using (this.windsorContainer.BeginScope())
                {


                    var job = this.windsorContainer.Resolve<TJob>();
                    try
                    {
                        job.Run();
                    }
                    finally
                    {
                        this.windsorContainer.Release(job);
                    }

                }

这里使用范围的原因是避免在线程不工作时打开会话。我当然可以分离一个新的线程并处理每个线程的会话,但它似乎更像是一个黑客而不是一个解决方案)

0 个答案:

没有答案