R.Tanaka.Ichiro's Blog

主にC# な話題です

目次

Blog 利用状況

ニュース

WCF の DataContract 属性のついたクラスの汎用性

WCF の DataContract 属性のついたクラスを、他のアセンブリで利用できると便利なんですけど、何か駄目っぽいですねぇ・・・

WcfServiceLibrary 側の処理ロジックと、Client 側の処理ロジックが共通だった場合、共通処理ロジックをライブラリ化して別のアセンブリとして分離させて、双方から参照させてあげる方法を良く使うのです。

しかし、共通の処理ロジックではデータを格納するための DataContract 属性のついた型が利用できなければならない訳です(これが問題な訳ですな)

参照される側の共通処理ロジックライブラリでは、DataContract 属性のついた型なんて知らない訳ですし、共通処理ロジックから WcfServiceLibrary を参照すると、WcfServiceLibrary から共通処理ロジックを呼び出せない(当たり前)訳です。

共通の処理ロジックライブラリに、 DataContract 属性のついたクラスを移動させてしまうと、WcfServiceLibrary でクライアントにサービス参照として公開できなくなってしまいます。

うーん。困った困った。

誰か、良い方法を知りませんかぁ~?

まあ、最悪は DataContract 属性のついたクラスファイルをコピーするとか、処理ロジックモジュールファイルをコピーするとか、後々の憂いの残る方法を使うしか無い訳ですが・・・

投稿日時 : 2008年8月19日 14:03

Feedback

# re: WCF の DataContract 属性のついたクラスの汎用性 2008/08/19 14:47 なちゃ

プロキシを自動生成させなきゃ大丈夫です。

# re: WCF の DataContract 属性のついたクラスの汎用性 2008/08/19 14:49 なちゃ

あいや、話が違ったorz
普通にやればできませんでしたっけ?

# re: WCF の DataContract 属性のついたクラスの汎用性 2008/08/19 15:32 R・田中一郎

できないんですよぉ~
こんな感じですが、どんなもんでしょうか?

アセンブリA(WcfServiceLibrary)
 アセンブリCを参照
 DataConstract 属性が付いたHogeClassを保有

アセンブリB(WcfClient)
 アセンブリCを参照
 アセンブリAをサービス参照することで HogeClass を利用

アセンブリC(Common Logic Library)
ここでアセンブリAにあるHogeClass型を使いたい
 アセンブリCはアセンブリA,B から参照される

# WCF の DataContract 属性のついたクラスの汎用性(その2) 2008/08/27 13:17 R.Tanaka.Ichiro's Blog

WCF の DataContract 属性のついたクラスの汎用性(その2)

# WCF の DataContract 属性のついたクラスの汎用性(その2) 2008/08/27 13:27 R.Tanaka.Ichiro's Blog

WCF の DataContract 属性のついたクラスの汎用性(その2)

タイトル
名前
Url
コメント