非プリミティブ値を含む辞書をシリアル化しようとしています。IXmlSerializable を実装することにより、ディクショナリをシリアル化するための通常のアプローチを使用しています。WriteXML メソッド内で、非プリミティブ値を文字列に変換します (これがどのように変換されるかは関係ありませんが、その部分は機能しています)。ReadXML 内で、逆シリアル化された値 (文字列) を元の型に変換します。
ただし、この方法では次のエラーがスローされます。
これは、値がプリミティブではないためだと思います。ただし、シリアル化されていないため(代わりに文字列に変換されているため)、シリアル化可能である必要はありません。これを回避する方法はありますか?
私はジェネリックを使用していることに言及する必要があり、ランタイムはMono環境です。クラス定義は次のようになります。
public class SerializableRefDictionary<TKey, TValue> : Dictionary<TKey, TValue>, IXmlSerializable where TValue : NonPrimitiveObject