我正在尝试使用StructureMap为依赖注入设置一个带有NHibernate的MVC站点。这是我的StructureMap注册表中的一行:
ForRequestedType<NHibernate.ISession>().CacheBy(StructureMap.Attributes.InstanceScope.HttpContext)
.TheDefault.Is.ConstructedBy(
context => context.GetInstance<IDatabaseScope>().OpenSession());换句话说(或者是我想要的),接口IDatabaseScope有一个OpenSession方法,它将返回一个用于该HttpRequest的会话。
我得到的是一个StructureMap异常代码202,没有为PluginFamily System.Type定义默认实例。
现在我理解了"No Default Instance“异常,并且已经解决了其中的几个问题。但它为什么要为System.Type寻找默认实例呢?(也就是说,查找ISession或IDatabaseScope的实例或链中的任何其他内容都不会失败。它正在尝试创建System.Type的一个实例)。为什么?
发布于 2009-09-24 12:30:08
您的IDatabaseScope的具体实现是否具有任何构造函数依赖关系?这种风格的问题可能更适合structuremap users mailing list,因为它可能非常特定于您的实现。
https://stackoverflow.com/questions/1469582
复制相似问题