Передача объектов обратного вызова в методы службы WCF - PullRequest
1 голос
/ 11 августа 2009

Можно ли передать объекты обратного вызова (с методами обратного вызова) в метод службы wcf?

Предположим, у меня есть следующий класс:

class Callback
{
     public Callback(){}
     public int GetSomeData(int param)
     {
       return param;
     }
}

Можно ли как-нибудь сделать звонок, как:

WCFServiceProxy proxy = new WCFServiceProxy();
Callback myCallback = new Callback();
proxy.SomeMethod(myCallback);

а вызов службы GetSomeData () реализован на стороне клиента? Или какое рабочее решение для этого?

Ответы [ 2 ]

1 голос
/ 11 августа 2009
0 голосов
/ 11 августа 2009

Да, вы можете сделать это. Вы должны определить вторичный интерфейс, который служит контрактом обратного вызова.

[ServiceContract]
public interface ICallback
{
    [OperationContract(IsOneWay=true)]
    void InvokeCallback();
}

[ServiceContract(CallbackContract=typeof(ICallback)]
public interface IContract
{
    [OperationContract]
    void DoSomething();
}
[ServiceBehavior]
public class MyService : IContract
{
    void DoSomething() { }
}

Это основной подход. Я настоятельно рекомендую заглянуть на сайт Ювала Лоуи, IDesign.net . В разделе загрузок есть несколько примеров того, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...