我使用内置的Funq IoC容器设置ServiceStack api来解析我的存储库。但是,当我调用api方法时,我得到以下异常:
无法解析System.Boolean类型的必需依赖项。
上次我检查System.Boolean时不需要任何解析。我在AppHost配置中注册了我的存储库,如下所示:
container.RegisterAutoWiredAs<OrganisationRepository, IOrganisationRepository>().ReusedWithin(ReuseScope.Request);
这是我第一次使用ServiceStack或Funq。我做错了吗?有办法解决这个问题吗?
答案 0 :(得分:1)
如果您使用container.RegisterAutoWiredAs<T,IT>()
,则Funq将按惯例自动连接存储库,即使用最大构造函数并解析并注入存储库的每个公共属性依赖项。
要使用备用特定构造函数,或仅使用自动装配特定属性,您必须手动指定注册:
container.Register<IOrganisationRepository>(c =>
new OrganisationRepository(c.Resolve<IFoo>()) { Bar = c.Resolve<IBar>() } );
注意:每当你遇到像这样的IOC问题时,你也应该包括你班级的骨架。