Autofac是否支持通过名称解析服务?或者我必须总是指定一种服务类型?Autofac仅按名称解析?
我想做的事:
container.ResolveNamed("Plugin"); // or container.TryResolvedNamed("Plugin", out instance);
不
container.ResolvedNamed<ISomeInterface>("Plugin"); // etc
其中 “插件” 是注册名称/键,不是一个类型。
谢谢!
这没有意义,除非你想让它返回'object'。 – SLaks 2012-08-13 22:03:05
其实,这很好,因为我在Xaml绑定环境中。实际上,它是与Caliburn相关的一个小集成部分,如果这有助于提供更大的上下文。 Caliburn的Bind类有一个方法,试图通过名称来解析所选的IoC容器,而不是类型。 – robcecil 2012-08-13 22:09:29
具体而言:Bind.ModelChanged(...)是有问题的方法。它尝试通过使用以下行的IoC容器进行检索: target = IoC.GetInstance(null,containerKey); 因此,Caliburn假设提供的IoC风格将支持以这种方式进行检索。不确定Autofac是否能够以这种方式工作。 (IoC只是Caliburn源代码中的一个门面类,它抽象出任何容器的细节......) – robcecil 2012-08-13 22:14:22