2016-03-07 88 views
0

正如你知道有使用下面的代碼在vNext樣品服務註冊(在startup.cs文件):註冊ASP.NET DI服務與參數

services.AddTransient<IEmailSender, AuthMessageSender>(); 

的AuthMessageSender類是這樣

public class AuthMessageSender : IEmailSender, ISmsSender 
{ 
    public Task SendEmailAsync(string email, string subject, string message) 
    { 
     // Plug in your email service here to send an email. 
     return Task.FromResult(0); 
    } 

    public Task SendSmsAsync(string number, string message) 
    { 
     // Plug in your SMS service here to send a text message. 
     return Task.FromResult(0); 
    } 
} 

如果我們需要這個類這樣的

public class AuthMessageSender : IEmailSender, ISmsSender 
{ 
    //Added lines to class 
    private readonly object_something 
    public AuthMessageSender (object something){_something=something} 

    public Task SendEmailAsync(string email, string subject, string message) 
    { 
     // Plug in your email service here to send an email. 
     return Task.FromResult(0); 
    } 

    public Task SendSmsAsync(string number, string message) 
    { 
     // Plug in your SMS service here to send a text message. 
     return Task.FromResult(0); 
    } 
} 

在這種情況下我怎麼能註冊服務ü唱歌AddTransient方法?

回答

2

您只需提供其他服務的註冊。

services.AddTransient<IEmailSender, AuthMessageSender>(); 
services.AddTransient<ISomething, Something>(); 

或者,如果使用原始數據類型如字符串:

services.AddTransient(x => new AuthMessageSender(something: "MyString"));