2012-02-13 10 views
0

WCFサービスに少し問題があります。
実際には、ユーザーは「公開」サービスを購読することができます。GetCallbackChannel()を呼び出すときにインスタンスを1つだけ取得する方法は?

私は単に私は私のクライアントは、私がメッセージを公開するとき、私は単純に呼び出す通知するとしてその後、私はリストに返されたオブジェクト(List<IPublishing>の一種)

を追加OperationContext.Current.GetCallbackChannel<IPublishing>();
をやっていますすべての加入ユーザーのコールバック

素晴らしいですが、ユーザーは2回購読することができません。私はこの制約を確認するためにif (!theList.Contains(theCallbackChannelReturned))を行う理由だ
...

ここ事実は、彼も同じクライアント上で、IPublishingの別の新しいインスタンスを作成しているようだ、私はcallbackchannelを作成することを毎回..です。

私はこれを達成するために行う方法がわからない...私は

ありがとう... OperationContext.Current.InstanceContextまだ戻って同じハッシュコードが、 GetCallbackChannelがないことを考え出しました!あなたが次のことを行う必要があり、あなたのクライアントコールバックの実装では

答えて

1

[CallbackBehavior(
    ConcurrencyMode = ConcurrencyMode.Reentrant, 
    UseSynchronizationContext = false)] 
public partial class ServiceClient : IMyService_Callback 
{ .... } 
+0

残念ながら、それは動作しませんでした... – metalcam

関連する問題