编辑
我已经改变了对
设置的使用private int _Capacity = ConfigurationManager.AppSettings["FuelTankCapacity"];
为...
private int _Capacity = Convert.ToInt32(ConfigurationManager.AppSettings["FuelTankCapacity"]);
这解决了这个问题,但感觉就像一个懒惰的修复。必须有一种为设置指定整数类型的方法,还没有?
原始问题
在我的winforms应用程序中创建了一些设置后,我遇到了其中一个设置的问题。
该设置用于指定油箱的最大容量,值为2000
(2000升)。
不幸的是,设置被读作字符串值而不是int,即使我指定它应该是一个整数值。
以下是此设置的App.config
代码:
<setting name="FuelTankCapacity" serializeAs="String">
<value>2000</value>
</setting>
答案 0 :(得分:1)
我想问题是AppSettings
属于NameValueCollection
类型,符合MSDN
可以使用键或索引访问的关联String键和String值的集合。
所以走这条路线你最终不可避免地会有一个字符串。
使用Property
命名空间,您可以直接通过Settings
访问变量,从而按照您的指定访问该类型:
int t = Properties.Settings.Default.FuelTankCapacity;
以下是有关using settings at runtime
的更多信息您可以以只读方式访问应用程序范围的设置值,并且可以读取和写入用户范围设置的值。通过Properties命名空间在C#中提供设置。