[英]How to update already registered service Castle Windsor
我是DI容器的初學者。
我正在使用第三方框架,它有一個類似下面的類
public class PurchaseOrderAppService : IPurchaseOrderAppService, IAutoRegister
{
private readonly IEmail _email;
public PurchaseOrderAppService(IEmail email)
{
_email = email;
}
}
繼承IAutoRegister接口的所有類均由第三方框架自動注冊。 電子郵件類別如下
public class Email : IEmail, IAutoRegister
{
public Send(string message)
{
//Send a message
}
}
我想要的是我希望PurchaseOrderAppService類使用另一個名為MyEmail而不是Email的類。
public class MyEmail : IEmail
{
public Send(string message)
{
//Send a message another way
}
}
如何按框架更新已注冊的服務?
謝謝。
謝謝@Thuan,
在第二個鏈接中,已廢棄了名為ServiceOverrides的方法,我可以改用DependsOn ,
IocContainer.Register(
Component.For<IEmail>()
.ImplementedBy<MyEmail>()
.Named("Email.MyEmail"),
Component.For<IPurchaseOrderAppService>()
.ImplementedBy<PurchaseOrderAppService>()
.Named("PurchaseOrderAppServiceWithMyEmail").IsDefault()
.DependsOn(Dependency.OnComponent(typeof(IEmail), "Email.MyEmail")));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.