2012-04-13 138 views
0

我有一個接口爲什麼我得到NullReferenceException?

public interface IConfig 
{ 
    string name { get; set; } 
    string address { get; set; } 
    int phone { get; set; } 

    List<string> children { get; set; } 
} 

這裏是一個只有三個應用程序的設置不是四個像我在我的接口配置文件。

<add key="name" value="abc" /> 
<add key="address" value="100 Norin Street" /> 
<add key="phone" value="709-111-111111" /> 

現在啓動時,我使用DictionaryAdapterFactory來填充app.config文件值。我在這裏成功獲取app.config的值。

private readonly IConfig _config; 
private readonly DictionaryAdapterFactory _factory; 
_factory = new DictionaryAdapterFactory(); 
_config = _config.GetAdapter<IConfig>(ConfigurationManager.AppSettings); 

現在在運行時我需要填寫List類型的子值。但我得到空例外。爲什麼?

//loop 
_config.children.Add(item.values); 

這裏有什麼問題?

回答

4

缺少某處列表初始化?

_config.children = new List<string>() 
+0

我試過了,但後來發生此錯誤。 {「無法投射'System.String'類型的對象來鍵入'System.Collections.Generic.List'1 [System.String]'。」} – user1327064 2012-04-13 20:05:12

+2

顯示更多代碼,您的消息對我而言沒有多大意義 – 2012-04-13 20:13:01

+0

@ user1327064哪行代碼拋出「無法投射」異常? – phoog 2012-04-13 20:17:07

0

它會像下面一樣嗎?

_config.children.AddRange(item.values); 

當然,初始化也是必需的。

_config.children = new List<string>(); 
0

您在界面中將'Phone'定義爲int,而AppSettings中的phone值不能轉換爲int。將其更改爲字符串:

string phone { get; set; } 
相關問題