2011-07-04 10 views
0

同じソリューションで2つのプロジェクトを作成しました。最初のプロジェクトにはクラスがあり、それを "クラスA"と呼ぶことができます。 2番目のプロジェクトはWCFサービスライブラリです。そのWCFサービスは、同じソリューションから プロジェクトを参照しているため、最初のソリューションで定義されたタイプ "A"を使用できます。カスタムタイプのWCF問題

問題は、最初のプロジェクト(通常のC#プロジェクト)からそのwcfサービスを参照すると、オブジェクトブラウザでwcfサービスメソッドが返され、タイプ "A"を返さなければならず、 "オブジェクト"タイプ!カスタムクラスをWCFプロジェクトの一部として定義すると、戻り型として認識されます。

プロジェクト1(定義済みタイプ "A")にWCFプロジェクトを使用し、自分のタイプを認識させるにはどうすればよいですか?

+0

についてはこちらをご覧ください。あなたはこの質問でより正確にする必要があります。セットアップについて少し詳しく説明してください。クライアントとサーバー間で型(アセンブリ)を共有していますか? –

+0

1つのソリューションには、クライアントアプリケーション(クライアントプロジェクト)とサーバーアプリケーション(wcfプロジェクト)という2つのプロジェクトが含まれています。 WCFプロジェクトでは、クライアントプロジェクト(同じソリューションの一部)で定義された型を使用する必要がありますが、これらの型をクライアントアプリケーションに提供する必要がある場合(同じソリューションではbu wcfを使用する型を定義します)オブジェクト "です。どのように記述するか分かりません:) – guest86

+1

クライアントアプリケーションはサービスによって公開されるタイプを定義しますか?それはにおいがする。 –

答えて

1

おそらく、DataContractsには[KnownType]とマークする必要があります。

そして、これらの共有タイプを別のアセンブリ(プロジェクト)で分離することは非常に良い考えです。

0

あなたがサービスの唯一の消費者であり、.NETアプリケーションであれば、それはあなたが共有型情報を渡すことができますし、[KnownType]

であなたのオブジェクトをマークする必要はありません。このよう NetDataContractSerailizerを使用して価値があるかもしれません

は、あなたが言葉のソリューションとプロジェクトを混合良く説明http://www.pluralsight-training.net/community/blogs/aaron/archive/2006/04/21/22284.aspx

HTH

+0

私のコードの問題は、私はWCFとインターフェイスを使って通信しようとしていたことでした(プロジェクト1全体が、関数の引数型と戻り値の型としてインターフェイスを使用しています)。今、私はインターフェイスを使用することはできませんが、私はwCfと通信するためにプロジェクト1のクラスを使用するときに、(オブジェクトブラウザ内の)クラスは "Project1"に属するクラスではなく "WCFProjectクラス" ! – guest86