我正在使用Autofac xml配置文件来注册一些类,例如:
<?xml version="1.0" encoding="utf-8" ?>
<autofac defaultAssembly="ChainOfResponsibilities">
<components name="0">
<type>ChainOfResponsibilities.ClassA, ChainOfResponsibilities</type>
<services name="0" type="ChainOfResponsibilities.IClassA" />
<InstanceScope>perlifetimescope</InstanceScope>
<injectProperties>true</injectProperties>
</components>
</autofac>
现在,我想将此类注入另一个类中的方法,该类也在同一个xml配置文件中注册。换句话说,我正在尝试使用xml配置文件
实现以下代码的相同结果 builder.Register(c =>
{
var chainManager = new ChainManager();
var chainList = new List<Chain> { new Chain(c.Resolve<IClassA>)};
chainManager.AddChain(chainList);
return chainManager;
});
我考虑过使用属性注入或元数据,但没有运气得到我想要的结果。
有什么想法吗?
答案 0 :(得分:0)
配置机制很方便,但它并不意味着功能特性与代码的灵活性兼容。
它不支持方法注入,lambda注册或生命周期事件处理程序,这对于从您的示例中获取AddChain
这样的方法是必需的。
您可能需要保留代码来执行方法注入,并且只需要放置&#34;链&#34;配置中的项目。