私が取り組んでいるプログラムは、wcfを使用してコールバックとサービスの両方を公開しています。基本的に、サービスが行うことは、単にいくつかの変数値を返すことです。コールバックに関しては、それらは単にそれらの変数を更新します。
サービスのみを含む1つのクラスと、サービスとコールバックを含む1つのクラスを公開できるようにしたいと思います。
例えば :
[ServiceContract]
[ServiceBehavior(InstanceContextMode=InstanceContextMode::Single, ConcurrencyMode=ConcurrencyMode::Multiple)]
public ServiceClass
{
[OperationContract]
public int getValue()
{
return mValue;
}
protected static int mValue;
};
[ServiceContract]
[ServiceBehavior(InstanceContextMode=InstanceContextMode::Single, ConcurrencyMode=ConcurrencyMode::Multiple)]
public ServiceAndCallbackClass : ServiceClass
{
[OperationContract]
public bool subscribe()
{
// some subscribing stuff
}
public void MyCallback()
{
++mValue;
// Notify every subscriber with the new value
}
};
サービスのみが必要な場合は、基本クラスを使用できます。ただし、コールバックをサブスクライブしてサービスを使用する場合は、ServiceAndCallbackClassを使用できます。
これは可能ですか?