クラス 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
ましたが、役に立ちませんでした。