0

我有一个界面

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);

现在在运行时我需要填写子列表类型的值。但我得到空异常。为什么?

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

这里有什么问题?

4

3 回答 3

4

在某处缺少列表初始化?

_config.children = new List<string>()
于 2012-04-13T20:01:19.467 回答
0

会像下面这样吗?

_config.children.AddRange(item.values); 

当然,也需要初始化。

_config.children = new List<string>();
于 2012-04-13T20:16:06.527 回答
0

您在界面中将“电话”定义为 int,而 AppSettings 中的电话值不能转换为 int。将其更改为字符串:

  string phone { get; set; }
于 2013-11-27T23:43:09.860 回答