我想檢查我們的配置文件,看看它是否與我要創建新的配置文件相同。這種方法稱爲GetConfig()。.GetType().GetProperties()以不同的順序返回屬性
幾個小時後,我注意到如果我保存我的配置文件,然後調用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);
非常感謝幫助。
按字母順序排列字段名? – taffer