2011-12-06 8 views
0

.Net4バックエンドとSilverlight 5フロントエンドの間で共有したい大きなオブジェクト構造があります。適切なタイプの2つのクラスライブラリプロジェクトを作成し、.Netライブラリに実装されたオブジェクト構造をSLライブラリにリンクさせました。 Silverlightクライアント側では、Silverlightクラスライブラリを参照しています。私がサービス参照を生成するとき、 "参照されたアセンブリの型を再利用する"というオプションをチェックしました。しかし、私がサービス参照を生成するとき、参照されているアセンブリにある型がまだ生成されていることがわかりました。これは特定のタイプのみであり、大部分はコレクションタイプ(<CollectionDataContract>に帰属)と思われます。Silverlightサービスリファレンスの生成 - プロキシクラスの生成原因を特定する方法

私は一般的にList<MyTypeA>またはいくつかのケースでは、彼らはMyListTypeBList<MyTypeB>から継承MyListTypeB、されているかされている多くの性質を持っている主な目的を持っています。プロキシを生成させているのはMyListTypeBに似たクラスのようです。これらはすべて<CollectionDataContract>であり、デフォルトのコンストラクタがあります。

また、サービス参照を追加するプロジェクトには、エンティティを含む他のSL プロジェクトへの参照がありますが、サービスを更新すると、DLLへの新しい参照も直接追加されていますプロジェクトになぜこれが起こっているのかわからない、またはサービスプロキシ生成に混乱を引き起こしている場合

サービス生成がプロキシクラスを生成する原因となっているクラス/プロパティを知る方法はありますか?または、試行錯誤の場合、それらが生成されずに問題クラスに磨かれるまで、属性をコメント化する必要がありますか?

+0

Hmmm。 [OK]を、私は、プロキシで生成されたクラスは本当にただであることがわかった: System.Collections.ObjectModel.ObservableCollection 型クラス、および/ CTパラメータでSLSvcUtilを使用してプロキシを生成することによって、からこれを防止します生成されます。かなりの規模のチームで働いていても、私はdevsにslsvcutilを実行させる必要はありません。 [Add Service Reference]ダイアログを使用してこの機能を実現することは可能ですか? – hitch

答えて

0

私は今svcmapファイルの使用を知った、と私のコレクション型を含めるようにCollecitonMappings要素を更新し、ここで説明している:

http://mostlydevelopers.com/blog/post/2009/12/14/Configure-WCF-Service-ndash3b-Reuse-Collection-Types-Issue.aspx

svcmap機能があることを少し変わったようですそう書かれていない。

は、私は彼が次のようなファイルsvcmap int型エントリを追加することができました:

<CollectionMappings> 
    <CollectionMapping TypeName="MyNamespace.MyType" Category="List" /> 
</CollectionMappings> 

そして私は、プロキシのコレクションが生成されていないサービス参照を更新するとき。

関連する問題