1

ExpenseInfoプロパティを含むクラスがありICollection<String>ます:

public ICollection<String> WhoOwes { get; private set; }

タイプ のオブジェクトを返す WCF サービスがありますExpenseInfo。同じソリューション内の Silverlight プロジェクトにサービスへの参照を追加しました。これにより、Silverlight プロジェクトのReference.csExpenseInfo内のクラスを含む一連のコードが生成されました。

このクラスはかなり良さそうに見えますが (ただし、RIA 検証データの注釈を追加したい場合はどうすればよいでしょうか?)、WhoOwesプロパティがありません。ネットワーク経由で送信できない何らかの理由がありますか? そのデータを別の方法で表す必要がありますか? それとも何か設定を間違えたのでしょうか?

4

3 に答える 3

2

WCF WebGet と ICollection<>を参照してください。

追加

[ServiceKnownType(typeof(string[]))]

メソッドではなくクラスに属性を追加し、WhoOwes プロパティは string[] として送信されます。

于 2010-10-10T16:15:13.133 に答える
1

問題があったようprivate setです。削除したところ、フィールドが表示されています。

コレクションを設定できないことを指定し、それをここで使用する方法はありますか?

于 2010-10-10T17:11:06.563 に答える
1

私の知る限り、C# プロパティのセマンティクスは、Web サービスを記述するメタデータでは表されません。

これらのメタデータは、WCF によって生成されたさまざまな XML スキーマ ファイル (拡張子 ".xsd") にあります。データ型に追加できる RIA 属性についても同じことが言えます。

解決策は、型を埋め込む dll を共有することで、クライアントに型を認識させることです。3 番目のプロジェクト「データ」を作成して、データ クラスを保持し、サーバー プロジェクトとクライアント プロジェクトの両方から参照することができます。

于 2010-10-10T17:47:24.070 に答える