2012-03-13 74 views
2

我見過的nServiceBus的每個示例都使用具體的類來實現IOC屬性注入。我如何註冊界面?在下面的示例中,如何註冊ISmtpClient以返回SmtpClientProxy(我創建的具體類)?nServiceBus IOC接口

public class EmailNotificationMessageHandler : IHandleMessages<EmailNotificationMessage> 
{ 
     public ISmtpClient Smtp { get; set; } 
     public void Handle(EmailNotificationMessage message) 
     { 
      //this.Smtp = new SmtpClient("localhost", 25); 
      this.Smtp.SendAsync(message.FromAddress, message.ToAddress, message.Subject, message.Body, message.Id); 
     } 
    } 

我的配置是這樣的,但我不明白如何具體類型(我不想一個Singleton)

Configure.With().CastleWindsorBuilder().JsonSerializer(); 

Configure.Instance.Configurer.ConfigureComponent<ISmtpClient>(DependencyLifecycle.InstancePerCall); 

此外,有沒有一種方式來獲得訪問實際的容器(在我的情況下,溫莎)做我想要的任何其他註冊的東西?

回答

2

您可以通過nServiceBus容器來使用,你可以後繼續參考:

_container = new WindsorContainer(); 

Configure.With().CastleWindsorBuilder(_container).JsonSerializer(); 

_container.AddComponent<ISmtpClient, CustomSmtpClient>();