1

構成ファイルを確認して、新しい構成ファイルを作成した場合と同じかどうかを確認したいと思います。このメソッドは 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

2 番目のオブジェクト

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

助けていただければ幸いです。

4

1 に答える 1