0

次の文はどういう意味ですか

DependencyObjects are not marked as serializable 

私の知る限り、DependencyObject から継承するクラスを持つことができます...そして、それをシリアライズ可能としてマークすることができます。とにかく serialize プロパティは継承できません。

誰かが私を明確にすることができますか?前もって感謝します。

4

2 に答える 2

2

DependencyObject は、依存関係プロパティ システム全体を利用するために存在します。この副作用の 1 つは、.NET で採用されているシリアル化へのアプローチと実際には一致しないことです。

.NET のシリアル化は、クラス内のフィールドをシリアル化します。ただし、DependencyObjects は実際には (インスタンス) フィールドを使用するのではなく、別の場所に格納されている登録済みの DependencyProperties を (存在する場合) 使用します。そのため、[Serializable] とマークしても、正しくシリアライズされません。

于 2011-09-03T17:42:15.490 に答える
2

これは、DependencyObject から派生したクラスを標準のシリアライザーでシリアル化できないことを意味します。回避策として、この記事に示されているように XamlReader/XamlWriter を使用できます。

于 2011-09-03T17:42:54.210 に答える