2011-10-29 123 views
0

我是真的新的C#和我試圖解決一些代碼使用亞馬遜SES發送電子郵件的測試。C#字符串到列表

[TestMethod()] 
    public void SendEmailTest() 
    { 
     SESEmailProvider target = new SESEmailProvider(); 

     string ToEmailAddresses = "[email protected]"; 
     string FromEmailAddress = "[email protected]"; 
     string Subject = "Test"; 
     string EmailBody = "Hello world."; 
     string expected = string.Empty; 
     string actual; 
     actual = target.SendEmail(ToEmailAddresses, FromEmailAddress, Subject, EmailBody); 
     Assert.AreEqual(expected, actual); 
     Assert.Inconclusive("Verify the correctness of this test method."); 
    } 

在Visual Studio中的錯誤信息是:

string SESEmailProvider.SendEmail(
System.Collections.Generic.List<string> ToEmailAddresses, 
string FromEmailAddress, string Subject, string EmailBody) 

Error: 

The best overloaded method match for 'MyServices.SESEmailProvider.SendEmail(
    System.Collections.Generic.List<string>, string, string, string)' 
    has some invalid arguements. 

我認爲這個問題是,它預計ToEmailAddresses是一個列表,而不是一個字符串,但我在努力尋找一種方法轉換/處理這個。

謝謝!

回答

4

好吧,您已將變量ToEmailAddresses定義爲字符串,但您希望它成爲一個列表。

有很多方法來定義和填充列表,但最緊湊的是:

var toEmailAddresses = new List<string> { "[email protected]" } 

上面創建一個新的列表,並與一個字符串「[email protected]

初始化
+1

請注意,您可以用逗號分隔多個值來初始化列表,例如..... {「item1」,「item2」,「item3」} – Jason

+0

謝謝 - 這工作完美。等待時間一到,我會盡快接受答案。再次感謝! – Matt

2

SendMail需要一個List作爲第一個參數 - 而不是一個字符串。

那麼,這樣做:

List<String> toAddresses = new List<String>(); 
toAddresses.Add("[email protected]"); 

通toAddresses作爲第一個參數

線索是錯誤消息。該公司預計列表,字符串,字符串,字符串

爲 'MyServices.SESEmailProvider.SendEmail(
System.Collections.Generic.List,字符串,字符串,字符串)'
的最佳重載的方法匹配具有一定的無效的爭論。

+0

感謝您的回答! – Matt

1
[TestMethod()] 
public void SendEmailTest() 
{ 
    SESEmailProvider target = new SESEmailProvider(); 

    List<string> ToEmailAddresses = new List<string>() {"[email protected]"}; 
    string FromEmailAddress = "[email protected]"; 
    string Subject = "Test"; 
    string EmailBody = "Hello world."; 
    string expected = string.Empty; 
    string actual; 
    actual = target.SendEmail(ToEmailAddresses, FromEmailAddress, Subject, EmailBody); 
    Assert.AreEqual(expected, actual); 
    Assert.Inconclusive("Verify the correctness of this test method."); 
} 

試試看。我已將您的變量從string更改爲List<string>

+0

感謝您的回答! – Matt