2012-04-11 11 views
0

WCFのSilverlightアプリケーションにキー値ペアまたはタプルのリストを送信する必要があります。 KeyValuePairクラスはシリアライズ可能ではなく、タプルクラスもシルバーライトではシリアライズできないことがわかりました。Silverlightのシリアライズ可能なキー値ペアまたはタプル

は、私がここで見つけるこのことについてブログ記事をお読みください。また、他のブログからいくつかの回答があったhttp://davybrion.com/blog/2010/06/more-on-system-tuple-and-serializationdeserialization/

。私はここにあるそれらの1人に行った:http://www.devvblog.com/?p=5

しかし、私はそれを使用する方法を本当に理解していない。私はできると思ったTuple<double> temp = new Tuple();。しかし、デフォルトのコンストラクタは存在しないようです。これを使う方法が分かっている人は、説明してください。さもなければ、WCFからSilverlightアプリケーションへのオブジェクトペアのリストを送信する方法はありますか?

+0

あなただけのワイヤー間でオブジェクトのリストを送信し、それらをデシリアライズする方法を知っているWCFを期待することはできません。オブジェクトを逆シリアル化する前にオブジェクトの型を知る必要があります。 KeyValuePairの汎用バージョンを使用できない理由はわかりません。なぜなら、MSDNでシリアライズ可能とマークされているからです。 http://msdn.microsoft.com/en-us/library/5tbh8a42.aspx – MonkeyWrench

+0

Silverlightの下には、その属性でマークされていません。 – Justin

+0

そうだとすれば、私は自分自身を転がす傾向があります。独自のリストクラスでSerializableメソッドを実装することは難しくありません。 – MonkeyWrench

答えて

1

この類似の質問に記載されているカスタム構造化ソリューションが好きです。使いやすく、理解しやすい

Is there a serializable generic Key/Value pair class in .NET?

+0

私は最初にそれを試みました。 Silverlightでサービス参照を追加したとき、サービスとSilverlightプロジェクトの間で共有構造体を使用していませんでした。私は "すべての参照されたアセンブリの再利用の種類"をチェックして、私は他のクラスを正しく参照していましたが、その構造体はそうではありませんでした。 – Justin

+0

構造体を[DataContract]と[DataMember]でマークするのを忘れましたか? –

+0

はい、私はしました。私はクラスのテンプレートデザインがそれを壊していたのだろうかと思います。 – Justin