3

.NET Compact Framework では DataContractSerializer を使用できないようです。私は、DataContractSerializer がシリアル化の聖杯であり、.NET 3 で導入された最も広く使用されているクラスの 1 つであると考えているため、これは非常に驚くべきことでした。

Compact Framework で同じ機能、つまり、テキスト形式を使用して現実世界のオブジェクト グラフを簡単に保存および復元する方法はありますか?

XmlSerializer や BinarySerializer などの古い限定的な .NET シリアライザーには近づきません。

おそらく DataContractSerializer のカスタム実装が利用可能であるか、Mono のコードを使用することは可能でしょうか? 誰かがこれをやろうとしましたか?

4

3 に答える 3

3

CF 3.5 では使用できませんか? (編集:いいえ、チェックしました-実際にはそうではありません)。XmlSerialzier があることは知っていますが、いくつかの制限があります。

テキストベースである必要はありますか?オプションの protobuf-netは、CF2.0、CF3.5、Silverlight、Mono、.NET 2.0 などで動作します。一般的に必要なものがすべて含まれています (コールバックなどを含む)。

ところで、Mono コード (「Olive」から) は、前回見たときはあまり完全ではありませんでした...

(編集)もう1つのオプションはJson.NETです。ここから、これは CF で機能するようになりました。これは JSON であるため、テキストベースであり、必要なことのほとんどを行う必要があります。

于 2009-03-07T16:47:35.110 に答える
0

解決策を見つけました:-)

http://www.codeproject.com/KB/XML/GR_CustomXmlSerializer.aspxに優れたXMLシリアライザーがあります。

現状では、コードはCompact Frameworkで機能しませんが、機能をわずかに失うだけで、コードを機能させるためにいくつかの簡単な調整を行いました。また、OpenNetCFを使用して、不足しているCF部分をいくつか埋めました。

于 2009-03-20T20:49:29.023 に答える
0

XmlSerializer を「制限付き」と呼ぶのが公正かどうかはわかりません。それはどういう意味ですか?あなたはそれを使って、それが欲しいと感じましたか? あなたにとって失敗する具体的なことは何ですか?

私の経験では、XmlSerializer は実際には DCS よりも豊富な機能を備えています。DCS はあまり機能しませんが、これはおそらく良いことです。一方、DCS は、XmlSerializer が実行しないことを少なくとも 1 つ実行します。つまり、プライベート メンバー変数との間で直接シリアル化できます。

XmlSerializer は高速で非常に優れた機能を備えているため、優れたユーティリティを利用できます。

于 2009-03-09T03:16:06.917 に答える