首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

Unity扩展
EN

Stack Overflow用户
提问于 2011-11-03 22:30:45
回答 2查看 572关注 0票数 3

我继承了一些带有自定义DI容器的代码(需要移动到unity ),它是基于属性的,比如MEF。

代码语言:javascript
运行
复制
[SERVICE]
PUBLIC <interface> myVar { get; set ; }

想知道是否已经有了一个unity扩展,我可以使用它,或者是否有任何帮助来构建一个?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-04 01:20:12

目前还不清楚[SERVICE]应该启用什么行为。所以我猜:

对于不同形式的依赖注入,Unity支持Injection Attributes。您还可以使用Attribute-Driven Policies进行方法拦截。

如果您可以灵活地更改注入的方式:首选模式是使用构造函数注入,而不是属性或服务定位器。它允许你从你的类中删除所有对Unity的引用...这意味着您可以在不更改代码的情况下再次更改容器。参见Service Locator is an Anti-Pattern

票数 2
EN

Stack Overflow用户

发布于 2011-11-04 04:42:39

如果SERVICEAttribute将一个属性标记为由容器注入,那么只需搜索替换整个代码库并替换[Dependency[SERVICE] ]。

DependencyAttribute是Unity为依赖注入标记属性的方式。

然而,我确实同意ErnieL的观点,即在依赖注入领域,使用属性是一种代码气味。使用该属性以允许将代码移动到Unity,但不要对您编写的任何新代码使用[Dependency],并在重构旧代码时将其删除。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7996618

复制
相关文章

相似问题

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