首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ServiceStack Funq容器将公共成员设置为空

ServiceStack Funq容器将公共成员设置为空
EN

Stack Overflow用户
提问于 2015-02-27 14:33:05
回答 1查看 172关注 0票数 0

我们的devteam的一些成员刚刚花了一些时间调试一个类似的问题。

在我们的一个单元测试中使用的RegisterAs类有一个公共成员:公共列表邮件{ get;set;}

当通过Funq解析该类时,成员被设置为null,即使它是在构造函数中设置的。

我们的团队成员一致认为,当成员不是注册为Container.RegisterAs<>的类型时,Funq将该成员设置为null。

我们目前使用的是ServiceStack版本4.0.33

如果公共成员不实现在Funq中注册的接口,那么配置ServiceStack.Funq使其不触及公共成员将是一件好事。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-27 15:57:18

ServiceStack的IOC中的AutoWiring对填充所有公共实例属性。使用了一个预编译表达式。在创建静态工厂时,它还不知道存在的所有已注册依赖项,因此创建的工厂自动生成每个公共可写属性。

当你想要不同的行为时,你可以使用你自己的工厂,例如:

代码语言:javascript
复制
container.Register<IDependency>(c => new Dependency(c.Resolve<IFoo>()) {
        Bar = c.Resolve<IBar>()
    })
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28767487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档