こんにちは私はC#WPFを使い始めたばかりで、データを保存またはロードするためのシリアル化について読みました。私の質問は、別のクラスのリストといくつかの追加のパラメーターを含むクラスをどのように保存できるかということです。
私の最初のクラス(MeterValues)には、いくつかのパラメーター(type、speedなど)が含まれています。
public class MeterValues{}
ここで、最初のクラスタイプの複数のインスタンスを含むリストを格納するために2番目のクラスを作成しました。(つまり、3つの異なるメーターがある場合、このリストサイズ= 3)
public class MeterValuesList : IList<MeterValues>{}
次に、2番目のクラスにパラメーターを追加します。これは、最初のクラスから独立しているため、一度だけ保存する必要があります。(class1のすべてのインスタンスに対してではありません)
問題を明確にするために、最初のクラスにパラメーターを追加することもできますが、100の異なるメーターがある場合、パラメーターは100回保存され、1回だけ保存する必要があります。
これを行う方法について何かアイデアはありますか?
PS:追加情報が必要な場合は、お問い合わせください。この問題の解決を支援するために、私は非常に熱心に学び、支援したいと思っています。前もって感謝します。
アップデート:
クラスMeterValuesListを.xmlファイルに保存することはできますが、リストのみがファイルに保存され、追加のパラメーターは表示されません(ファイルに書き込む直前のクラスにあり、デバッガーで確認しました)ただし、ファイルには表示されません)
MeterValuesList meterValuesList = DataContext as MeterValuesList;
meterValuesList.CommSettings = "Com5:19200,8,n,1";
FileStream stream = null;
try
{
stream = new FileStream(filename, FileMode.Create, FileAccess.Write);
XmlSerializer serializer = new XmlSerializer(typeof(MeterValuesList));
serializer.Serialize(stream, meterValuesList);
stream.Close();
}
これは、クラスをxmlファイルに保存した後の結果です。余分なパラメータがありません。
<?xml version="1.0"?>
<ArrayOfMeterValues xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MeterValues></MeterValues>
</ArrayOfMeterValues>