この質問があまり明白ではないことを願っていますが、私はシリアル化のトピックに最初の一歩を踏み出し、次の動作の説明を見つけることができませんでした。
クラスをシリアル化して、すべてが正しく設定されているかどうかをテストしたかったのです。このために、私はこのチュートリアルからコードを取得し、次のように適合させました。
private void SerializePresets(string path)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(MyClass));
using (TextWriter writer = new StreamWriter(path))
{
xmlSerializer.Serialize(writer, this);
}
}
このメソッドはその中にMyClass
あり、そこからも呼び出されます。これにより、次の例外が発生します。
タイプ 'System.InvalidOperationException'の例外がSystem.Xml.dllで発生しましたが、ユーザーコードでは処理されませんでした
追加情報:タイプ「MyClass」を反映するエラーがありました。
以来MyClass
プロパティとして、他のクラスのオブジェクトを保持している最初の私は、私があまりにもそれらのserializabelを行う必要があり、まだしかし、例外が持続すると思いました。ですから、シリアル化は不可能だと思いますが、this
この推測の確認は見つかりませんでした。
編集:このプロパティは、内部例外に従って問題を引き起こします:
[XmlArray("VolumePresetList"), XmlArrayItem(typeof(LinearAxisColorPresetsModel), ElementName = "VolumePresetList")]
public ObservableCollection<LinearAxisColorPresetsModel> VolumePresetList { get; set; }
内部の例外の助けを借りて(もう一度ヒントをありがとう)、シリアル化が失敗した理由を見つけることができました。
このクラスにLinearAxisColorPresetsModel
はパラメーターのないコンストラクターがなかったため、この問題が発生しました。
単に追加する
/// <summary>
/// Default Constructor
/// </summary>
private LinearAxisColorPresetsModel()
{
}
このクラスに私のための問題を解決しました。残っているのは、理由、パラメーターのないコンストラクターが必要な理由を見つけることです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加