0

WCFホスト(サービスプロキシではない)から、サービスを使用して接続されているクライアントにデータを送信したい。どうすればこれを達成できますか?

4

1 に答える 1

3

デュプレックスサービスを作成する必要があります。詳細については、次の記事を参照してください:http: //msdn.microsoft.com/en-us/library/ms731064.aspx

次に例を示します。

[ServiceContract(
    SessionMode=SessionMode.Required,
    CallbackContract=typeof(INotificationServiceCallback))]
public interface INotificationService
{
    [OperationContract(IsOneWay = true)]
    void Connect();
}

public interface INotificationServiceCallback
{
    [OperationContract(IsOneWay = true)]
    void SendNotification(string notification);
}

public class NotificationService : INotificationService
{
    public static List<INotificationServiceCallback> Clients = 
        new List<INotificationServiceCallback>();

    public void Connect()
    {
        Clients.Add(
            OperationContext.Current.GetCallbackChannel<ICalculatorDuplexCallback>());
    }
}

public class Notifier
{
    void HandleReceivedNotification(string notification)
    {
        foreach (var client in NotificationService.Clients)
        {
            client.SendNotification(notification);
        }
    }
}
于 2011-02-25T04:48:31.720 に答える