【发布时间】:2015-10-27 10:09:48
【问题描述】:
我想检查我们的配置文件,看看它是否与我要创建一个新的配置文件一样。此方法称为 GetConfig()。
几个小时后,我注意到如果我保存我的配置文件然后调用 GetConfig 它可以工作,但是如果我关闭程序启动它并加载我的配置文件并调用 GetConfig() 它会以不同的顺序返回我的属性.
您可以在下面看到我的意思,属性 b 是类的对象。属性不止3个,我只想举个小例子:
- - - - - - - - -- - - - - - -- S A V E C O N F I G
- - - - - - -- - G E T C O N F I G
1 Field: a
1 Field: b
1 Field: c
以及它必须保存的下一个配置对象。
1 Field: a
1 Field: b
1 Field: c
当我在同一个实例上加载配置时
- - - -- - - - - - - - - -- - A R E E Q U A L
- - - - - - -- - G E T C O N F I G
1 Field: a
1 Field: b
1 Field: c
下一个配置对象
1 Field: a
1 Field: b
1 Field: c
但是,当我重新启动程序时加载配置时,我得到了这个:
- - - -- - - - - - - - - -- - A R E E Q U A L
- - - - - - -- - G E T C O N F I G
1 Field: a
1 Field: b <-- correct
1 Field: c
第二个对象
1 Field: a
1 Field: c
1 Field: b <-- should be 2nd.
所以当我尝试比较两个配置文件时,它们不匹配。 有人有这方面的经验吗?
foreach (var field in channel.GetType().GetProperties())
{
Console.WriteLine(channel.ChannelNumber + " Field: " + field.Name);
非常感谢您的帮助。
【问题讨论】:
-
按字母顺序排列字段名称?
标签: c# properties system.reflection getproperties