1

我使用内置的 Funq IoC 容器设置了一个 ServiceStack api 来解析我的存储库。但是,当我调用 api 方法时,出现以下异常:

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

上次我检查 System.Boolean 不需要任何解析。我已经在 AppHost 配置中注册了我的存储库,如下所示:

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

这是我第一次使用 ServiceStack 或 Funq。我做错什么了吗?有没有解决的办法?

4

1 回答 1

2

如果您使用container.RegisterAutoWiredAs<T,IT>(),那么 Funq 将按照约定自动连接存储库,即使用最大的构造函数并解析和注入存储库的每个公共属性依赖项。

要使用替代的特定构造函数,或仅自动装配特定属性,您必须手动指定注册:

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

注意:每当你遇到这样的 IOC 问题时,你还应该包括你的类的骨架。

于 2013-01-02T05:33:54.440 回答