WCF の DataContract 属性のついたクラスを、他のアセンブリで利用できると便利なんですけど、何か駄目っぽいですねぇ・・・
WcfServiceLibrary 側の処理ロジックと、Client 側の処理ロジックが共通だった場合、共通処理ロジックをライブラリ化して別のアセンブリとして分離させて、双方から参照させてあげる方法を良く使うのです。
しかし、共通の処理ロジックではデータを格納するための DataContract 属性のついた型が利用できなければならない訳です(これが問題な訳ですな)
参照される側の共通処理ロジックライブラリでは、DataContract 属性のついた型なんて知らない訳ですし、共通処理ロジックから WcfServiceLibrary を参照すると、WcfServiceLibrary から共通処理ロジックを呼び出せない(当たり前)訳です。
共通の処理ロジックライブラリに、 DataContract 属性のついたクラスを移動させてしまうと、WcfServiceLibrary でクライアントにサービス参照として公開できなくなってしまいます。
うーん。困った困った。
誰か、良い方法を知りませんかぁ~?
まあ、最悪は DataContract 属性のついたクラスファイルをコピーするとか、処理ロジックモジュールファイルをコピーするとか、後々の憂いの残る方法を使うしか無い訳ですが・・・