2011-08-30 162 views
9

我遇到了一個.NET 3.5庫問題,我正在開發它來發送電子郵件。 我把system.net配置成app.configSmtpClient和app.config system.net配置

<system.net> 
    <mailSettings> 
    <smtp from="[email protected]"> 
     <network host="myserver.com" port="25" defaultCredentials="true" /> 
    </smtp> 
    </mailSettings> 
</system.net> 

我沒有實例化的PARAMS SmtpClient:

SmtpClient client = new SmtpClient(); 

但配置不讀(我試圖測試與NUnit的圖書館)和我得到一個System.InvalidOperationException,因爲配置沒有被讀取,因此主機爲空。

不應該自動讀取配置嗎?

+1

2年前有類似問題:http://stackoverflow.com/questions/737946/net-configuration-section-designer-where-is-my-collection/738501#738501 –

+0

謝謝約翰。我剛剛得出同樣的結論......)我應該更多地考慮它! – mamoo

回答

12

確保您將配置塊(如上所示)添加到{appName} .exe.config或web.config - 類庫的配置是在運行時從其中一個文件中獲取的,而不是從應用程序。類庫的.config。

+0

感謝您的回答Davide。這是一個類庫,我試圖用NUnit進行測試(它有什麼區別嗎?),無論如何該部分存在於.config文件中,所以我仍然卡住... – mamoo

+0

你是最受歡迎的,幾星期前,我對同樣的問題給出了類似的答案,這是我在過去也做過的一個常見錯誤:) –

0

我剛剛意識到我肯定是做錯了方式(也有a similar post from John about it和解決方案在那裏......)。

郵件設置僅在應用程序級別提供,因此測試項目應該瞭解您的設置以將它們考慮在內。

感謝JohnDavide爲我指出了正確的方向!