本文介绍了温莎城堡使用同一接口解析多个依赖项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问题:
类构造函数如下:
public class ParsingRulesProvider : IParsingRulesProvider{
public ParsingRulesProvider(List<IParsingRule> rules){}
}
我们有两个规则:
public class ARule : IParsingRule{
public ARule(IASomeObject someObject){}
}
public class BRule : IParsingRule{
public BRule(IBSomeObject someObject){}
}
问题:
如何在代码中注册:
-
ParsingRulesProvider
与规则A和B? -
ParsingRulesProvider
是否所有对象都实现了IParsingRule? -
ARule
和BRule
?
ParsingRulesProvider
with rule A and B?ParsingRulesProvider
with all objects implementing IParsingRule?ARule
andBRule
?
推荐答案
AD1)
container.Kernel.Resolver.AddSubResolver(new ListResolver(container.Kernel, true));
AD2)
container.Register(Component
.For<IParsingRulesProvider>()
.ImplementedBy<ParsingRulesProvider>());
AD3)
container.Register(Component
.For<IParsingRule>()
.ImplementedBy<ARule>()
.LifeStyle.Singleton
.Named("ARule"));
container.Register(Component
.For<IParsingRule>()
.ImplementedBy<BRule>()
.LifeStyle.Singleton
.Named("BRule"));
这篇关于温莎城堡使用同一接口解析多个依赖项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!