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'。 –