3

このアプリでは、オブジェクトのタイプに関係なく、オブジェクトのプロパティを同じデータベース テーブルに、propertyName、propertyValue、propertyType の形式で保存する必要があります。XamlWriter を使用して、指定されたオブジェクトのすべてのプロパティを保存することにしました。次に、XamlReader を使用して、作成された XAML を読み込み、プロパティの値に戻します。これは、空の文字列を除いて、ほとんどの場合うまく機能します。XamlWriter は、以下のように空の文字列を保存します。

<String xmlns="clr-namespace:System;assembly=mscorlib" xml:space="preserve" /> 

XamlReader はこの文字列を認識して文字列を作成しようとしますが、使用する String オブジェクトに空のコンストラクターが見つからないため、ParserException をスローします。

私が考えることができる唯一の回避策は、プロパティが空の文字列の場合、実際にはプロパティを保存しないことです。次に、プロパティをロードするときに、存在しないプロパティを確認できます。これは、それらが空の文字列であることを意味します。

これに対する回避策はありますか、それとももっと良い方法がありますか?

4

2 に答える 2

0

文字列をシリアライズしようとしたときに、これと同様の問題がありました。これを解決できる唯一の方法はStringWrapper、適切なコンストラクタを持つ構造体またはクラスを作成することでした。次に、この型を使用して文字列値をロードおよび保存しました。

于 2010-04-05T15:25:41.483 に答える