2012-12-31 43 views
1

我已经使用内置的Funq IoC容器来设置ServiceStack api来解析我的存储库。但是,当我调用API方法时,出现以下异常:ServiceStack/Funq无法解析System.Boolean异常

无法解析类型System.Boolean的所需依赖项。

我上次检查System.Boolean不需要任何解析。

container.RegisterAutoWiredAs<OrganisationRepository, IOrganisationRepository>().ReusedWithin(ReuseScope.Request); 

这是用ServiceStack或Funq我第一次:我登记我的APPHOST配置库如下。我做错了什么?有没有解决的办法?

+1

您不能自动解析需要布尔参数的东西。它如何知道是否通过'true'或'false'? – SLaks

+0

我的构造函数都没有得到一个布尔值。完全相同的设置使用Autofac。 – Carvellis

+0

@SLaks啊实际上有一个依赖于一个带有布尔值的重载构造函数。相同的依赖关系总是与Autofac协同工作,因为Autofac可能足够聪明地找到它实际可以解析的构造函数(不带布尔参数)。 – Carvellis

回答

1

如果使用container.RegisterAutoWiredAs<T,IT>()然后Funq将自动线的库按照惯例,即使用最大构造和解决,并注入你的版本库的每个公共属性的依赖。

使用备用具体构造,或仅自动装配特定的属性,你将不得不使用手动指定登记:

container.Register<IOrganisationRepository>(c => 
    new OrganisationRepository(c.Resolve<IFoo>()) { Bar = c.Resolve<IBar>() }); 

注:只要你有国际奥委会的问题这样,你还应该包括骨架你的班。