首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CastleWindsor + NHibernate + NCommon IRepository:如何自动注册?

CastleWindsor + NHibernate + NCommon IRepository:如何自动注册?
EN

Stack Overflow用户
提问于 2012-03-16 15:00:34
回答 1查看 575关注 0票数 1

我试图将NHibernate实体自动注册为NCommon IRepository正在使用的城堡,但我搞不懂。

在之前的一个项目中,我们使用了autofac,这就是我们如何实现它的方法:

代码语言:javascript
复制
autofacContainerBuilder.RegisterGeneric(typeof (NHRepository<>))
                .As(typeof (IRepository<>))
                .InstancePerLifetimeScope();

卡塞尔有等价物吗?谢谢!

编辑:

这是我所能得到的最接近的,但是ComponentActivator在实例化NHRepository时失败了:

代码语言:javascript
复制
.Register(Component.For(typeof(IRepository<>))
                   .ImplementedBy(typeof(NHRepository<>))
                   .LifeStyle.Transient)

ComponentActivator无法实例化NCommon.Data.NHibernate.NHRepository

手工实例化爆炸:

代码语言:javascript
复制
NHRepository<MyEntity> blah = new NHRepository<MyEntity>();

通过以下方式:

*对象引用未设置为Microsoft.Practices.ServiceLocation.ServiceLocator.get_Current()中的c:\Home\Chris\Projects\CommonServiceLocator\main\Microsoft.Practices.ServiceLocation\ServiceLocator.cs:line 17中的对象实例*

已解决:

我错过了这个:

代码语言:javascript
复制
ServiceLocator.SetLocatorProvider(() => new WindsorServiceLocator(Container));

WindsorServiceLocator可在这里获得:

http://commonservicelocator.codeplex.com/wikipage?title=Castle%20Windsor%20Adapter&referringTitle=Home

更多信息在这里:

http://prashantbrall.wordpress.com/2010/11/22/service-locator-pattern-with-windsor-castle/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-16 23:48:19

我错过了这个:

代码语言:javascript
复制
ServiceLocator.SetLocatorProvider(() => new WindsorServiceLocator(Container));

WindsorServiceLocator可在这里获得:

http://commonservicelocator.codeplex.com/wikipage?title=Castle%20Windsor%20Adapter&referringTitle=Home

更多信息在这里:

http://prashantbrall.wordpress.com/2010/11/22/service-locator-pattern-with-windsor-castle/

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

https://stackoverflow.com/questions/9739647

复制
相关文章

相似问题

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