私は一般的なバインディングを持っていますが、そのうちの 1 つがこれです。
Bind<IHasher>().To<SHA256Hasher>();
このハッシャーを使用するクラスがいくつかあるため、これはうまく機能します。ただし、md5 ハッシュを期待する gravatar など、サードパーティでハッシュを使用するために別のタイプのハッシャーを必要とする 1 つまたは 2 つのコントローラーがあります。だから私は以下を行います:
Bind<ISomeController>().To<SomeController>().Named("SomeController").WithConstructorArgument("emailHasher", new Md5Hasher());
次に、コントローラーは次のようになります。
public class SomeController : Controller
{
private IHasher emailHasher;
public CampaignController(IHasher emailHasher)
{
this.emailHasher = emailHasher;
}
}
デバッグするときは、IHasher が Md5Hasher であると予想しますが、これは Sha256Hasher です。これは予想される動作であり、オーバーライドされた型を使用する方法はありますか?