- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图了解 [ImportingConstructor]
比用 [import]
装饰属性更合适.是个人喜好,还是允许由其他 DI 容器构建类的东西,或者是否有超过 [import]
的好处? ?
我认为,如果您不想公开公共(public)属性,但 MEF 也会解析私有(private)字段,那么再次,好处在哪里?
最佳答案
与其单纯从 MEF 的角度思考,不如从更广泛的意义上来看待你的类(class)设计。通常,当您设计一个类时,您有一组关联的属性,这些可能是服务,例如,
public class MyService
{
public ILogger Logger { get; set; }
public void SaySomething()
{
Logger.Log("Something");
}
}
var service = new MyService();
service.SaySomething();
Logger
属性(property):
var service = new MyService() { Logger = new ConsoleLogger() };
var service = new MyService();
service.Logger = new ConsoleLogger();
public class MyService
{
private readonly ILogger _logger;
public MyService(ILogger logger)
{
if (logger == null) throw new ArgumentNullException("logger");
_logger = logger;
}
public void SaySomething()
{
_logger.Log("Something");
}
}
MyService
的实例,您必须明确提供此附加服务(
ILogger
)才能正确初始化对象。这有助于多种方式:
[Import]
而不是
[ImportingConstructor]
因为 MEF 在不能满足类型的所有导入时会抛出异常,并且只会在初始化(
[ImportingConstructor]
)和
[Import]
之后返回类型s。
关于.net - 为什么使用 ImportingConstructor 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10840568/
我正在使用 MEF,我想在我的主构造函数上添加一个 ImportingConstructorAttribute。我正在使用以下技巧来指定一个 ImportingConstructor,它不会破坏我的对
我试图了解 [ImportingConstructor]比用 [import] 装饰属性更合适.是个人喜好,还是允许由其他 DI 容器构建类的东西,或者是否有超过 [import] 的好处? ? 我认
我正在使用 MEF 在构造函数中导入许多(带有元数据)。我已经按照视频教程尝试模仿它,但到目前为止它还不太奏效。简而言之,我重新命名了一些东西并进行了总结,但是: AbstractImportMe.c
当使用 MEF 和 Prism v4 时,推荐的[Import]方法是什么?这两种调用之间有什么区别(如果有的话)? 选项 1: public class TestClass { [Impor
我正在使用 MEF1 并遇到了一个奇怪的场景。 永远不会调用此构造函数: [ImportingConstructor] public LogViewModuleRoot(INavigationComm
我正在开发一个 C#/MVC 应用程序,该应用程序目前使用 Windsor 作为 DI 框架,并且刚刚开始探索 MEF 以使该应用程序更具可扩展性。它一直工作得很好,直到我的插件需要满足依赖关系。 如
我是一名优秀的程序员,十分优秀!