问题:
类构造函数如下所示:
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){}
}
问题:
如何在代码中注册:
- 规则 A 和 B
ParsingRulesProvider
? -
ParsingRulesProvider
所有实现IParsingRule的对象? -
ARule
和BRule
?
AD1)
container.Kernel.Resolver.AddSubResolver(new ListResolver(container.Kernel, true));
公元2)
container.Register(Component
.For<IParsingRulesProvider>()
.ImplementedBy<ParsingRulesProvider>());
公元3)
container.Register(Component
.For<IParsingRule>()
.ImplementedBy<ARule>()
.LifeStyle.Singleton
.Named("ARule"));
container.Register(Component
.For<IParsingRule>()
.ImplementedBy<BRule>()
.LifeStyle.Singleton
.Named("BRule"));