0

クラス Foo がマークされ[Serializable]、実装してISerializableいます。DataContractSerializer を介してシリアル化しようとしています。GetObjectData では、次のようにします。

info.AddValue("Test", new[] { 1,2,3});

次のエラーで失敗します。

要素 ':Test' には、'http://schemas.microsoft.com/2003/10/Serialization/Arrays:ArrayOfint' データ コントラクトのデータが含まれています。デシリアライザーは、このコントラクトにマップされる型を認識しません。'ArrayOfint' に対応する型を既知の型のリストに追加します。たとえば、KnownTypeAttribute 属性を使用するか、DataContractSerializer に渡される既知の型のリストに追加します。

DataContractSerializer コンストラクターに引数を渡そうとしknownTypesましたが、役に立ちませんでした。

4

1 に答える 1

0

knownTypesarg を DataContractSerializer コンストラクターに渡しても役に立ちません。代わりに、[KnownType(typeof(int[]))]クラス Foo 自体に追加します。

于 2010-09-25T15:53:25.330 に答える