Autofac在xml配置中定义方法注入
本文关键字:定义 方法 注入 配置 xml Autofac | 更新日期: 2023-09-27 18:21:47
我正在使用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;
});
我曾想过使用属性注入或元数据,但没能得到我想要的结果。
有什么想法吗?
配置机制很方便,但它并不意味着与代码的灵活性兼容。
它不支持方法注入、lambda注册或生存期事件处理程序,这些都是从调用的示例中获取类似AddChain
的方法所必需的。
您可能需要保留代码来进行方法注入,并且只将"链"项放入配置中。