Configuration 正在查找实例系统的StructureMap。键入

Configuration 正在查找实例系统的StructureMap。键入,configuration,registry,structuremap,Configuration,Registry,Structuremap,我正在尝试使用StructureMap为依赖注入设置一个带有NHibernate的MVC站点。这是我的StructureMap注册表中的一行: ForRequestedType<NHibernate.ISession>().CacheBy(StructureMap.Attributes.InstanceScope.HttpContext) .TheDefault.Is.ConstructedBy( context =&g

我正在尝试使用StructureMap为依赖注入设置一个带有NHibernate的MVC站点。这是我的StructureMap注册表中的一行:

        ForRequestedType<NHibernate.ISession>().CacheBy(StructureMap.Attributes.InstanceScope.HttpContext)
            .TheDefault.Is.ConstructedBy(
            context => context.GetInstance<IDatabaseScope>().OpenSession());
ForRequestedType().CacheBy(StructureMap.Attributes.InstanceScope.HttpContext) .TheDefault.Is.ConstructedBy( context=>context.GetInstance().OpenSession()); 换句话说(或者我打算是这样),接口IDatabaseScope有一个方法OpenSession,该方法将返回一个用于该HttpRequest的会话

我得到的是StructureMap异常代码202,没有为PluginFamily System.Type定义默认实例


现在我理解了“无默认实例”异常,并且我已经处理了其中几个异常。但为什么它要为System.Type寻找默认实例呢?(也就是说,它并没有找不到ISession、IDatabaseScope或链中的任何其他实例。它正在尝试创建System.Type的实例)。为什么?

IDatabaseScope的具体实现是否有任何构造函数依赖关系? 这种类型的问题可能更适合于,因为它可能非常特定于您的实现