0
有没有一种方法可以使用约定注册Ninject,实现某个接口的所有类都与每个类的名称相关联?Ninject注册按名称规定
interface IClientCodeValidator
{
string ValidateClientCode(params IXpressionNode[] customParameters);
string ValidatorName { get; }
}
public class Client1CodeValidator: IClientCodeValidator
{
public Client1CodeValidator()
{
this.ValidatorName = "Client1";
}
}
public class Client2CodeValidator: IClientCodeValidator
{
public Client2CodeValidator()
{
this.ValidatorName = "Client2";
}
}
Bind<IClientCodeValidator>()
.To.ItsClasses()
.InSingletonScope()
.Named(*c => c.ValidatorName*); <--
再后来
Container.Instance.Get<IClientCodeValidator>(clientName.ToUpper())
好了,我怎么挂钩工厂第二片段?我尝试了使用 '.Configure(c => c.InSingletonScope()。NamedLikeFactoryMethod((IClientCodeValidatorFactory f)=> f.GetFor()' 但我必须提供一个参数给GetFor()方法 – bdaniel7
你会将工厂作为一个简单的绑定连接:'绑定()。将();'注入到消费类的构造函数中,然后在用户代码中调用'GetFor'。 –