2012-01-24 13 views
2

午後。ViewModelにクラスモデルをシリアライズすることはできません

私はWCF Ria ServicesでSilverlightアプリケーションを開発しています。私は次のようなエラーが発生したこれらのテンプレートのいずれかをシリアル化しようとする時はいつでも私は、WCFを使用してそれらを輸送するためにシリアル化する必要があるクラスモデルのセットを持っていますが、私のviewmodelで:

エラー反映さがありましたコレクションのtions.Generic.list 'BlocoItem。 1。モデル。

内側検査:

System.ServiceModel。 DomainServices system.data.Services.client。 EntityConflictは、パラメータのないコンストラクタがないため、シリアル化できません。

クラスはかなりシンプルで、ほとんどがプリミティブ型のみを含み、すべてがパラメータなしのコンストラクタを持っています。しかし、このエラーも起こります。

何人か考えている人もいます。ありがとうございます。

+1

自動的にシリアライズすることはできません一般的なリスト(すなわち: 'リスト')で、パブリックメンバーが持っているあなたのクラスのように見えます。それは事実ですか? – CodingGorilla

+0

SL4 - > SL5 ...からアプリを更新したときに同じエラーが発生しましたが、RIAの変更が最も顕著です。 – felickz

+0

もちろん、パラメータのないすべてのコルレス作成者はpublicです。 –

答えて

0

リストの代わりにObservableCollectionsを使用するようにしてください。これらは直列化の問題を少なくする傾向があります。なんらかの理由で、別のライブラリのクラスがある場合は、直列化する必要がありますが、コンストラクタのパラメータは少なくなります。そのクラスを作成して部分的に拡張し、より少ないコンストラクターのパラメーターを定義します。

public partial class MyExistingClass 
{ 
    public MyExistingClass():base(){}.... 

もっとここに部分クラスで見つけることができます - MSDN Partial Classes

関連する問題