fc2ブログ

antsk blog

ジェネリック WCFサービス

ジェネリックなベースクラスから派生したサービスは使えるか?
を見てやってみたけど、どうもうまくいかんかったので調査。

WCF の調査の為に海外のブログを見ていたとき、「ジェネリックなベースは使えない」みたいなコメントがあったので、実際に試してみました。昔は動かなかったのでしょうか?


どうやら問題になるのは「オープン」ジェネリックのようだ。

このサンプル
// サービスインターフェース
[ServiceContract]
public interface IMasterService<T> where T : class
{
[OperationContract]
T GetData(string code);
}

// ホスト登録
static void Main()
{
......
host.AddServiceEndpoint(
typeof(IMasterService<Customer>),
new NetTcpBinding(),
address);
}


だと、エンドポイントのサービスは
IMasterService<Customer>で、型Tは固まってる。

仮に
interface IMasterService 
{
T GetData<T>(string code);
}

みたいになってると、GetDataを実際に呼び出すまで型Tがわからない。
このとき、Tが「既知の型」でなかったらGetDataは失敗するはず。

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2009/08/18(火) 00:35:10|
  2. .net
  3. | トラックバック:0
  4. | コメント:0

プロフィール

antsk

Author:antsk
主にC#のプログラマ。

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

未分類 (0)
.net (1)
WPF (8)

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QRコード