次の方法で共有


FabricClient.ServiceManagementClient.ServiceNotificationFilterMatched イベント

定義

によって以前に登録された RegisterServiceNotificationFilterAsync(ServiceNotificationFilterDescription) が、システム内のサービスのエンドポイントの変更と一致するとServiceNotificationFilterDescription発生します。

public event EventHandler ServiceNotificationFilterMatched;
member this.ServiceNotificationFilterMatched : EventHandler 
Public Event ServiceNotificationFilterMatched As EventHandler 

イベントの種類

次の例は、 に登録してサービス通知を処理する方法を示しています。

namespace ServiceNotificationsExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new FabricClient(new string[] { "[cluster_endpoint]:[client_port]" });

            var filter = new ServiceNotificationFilterDescription()
            {
                Name = new Uri("fabric:/my_application"),
                MatchNamePrefix = true,
            };

            client.ServiceManager.ServiceNotificationFilterMatched += (s, e) => OnNotification(e);

            var filterId = client.ServiceManager.RegisterServiceNotificationFilterAsync(filter).Result;

            Console.WriteLine(
                "Registered filter: name={0} id={1}",
                filter.Name,
                filterId);

            Console.ReadLine();

            client.ServiceManager.UnregisterServiceNotificationFilterAsync(filterId).Wait();

            Console.WriteLine(
                "Unregistered filter: name={0} id={1}",
                filter.Name,
                filterId);
        }

        private static void OnNotification(EventArgs e)
        {
            var castedEventArgs = (FabricClient.ServiceManagementClient.ServiceNotificationEventArgs)e;

            var notification = castedEventArgs.Notification;

            Console.WriteLine(
                "[{0}] received notification for service '{1}'",
                DateTime.UtcNow,
                notification.ServiceName);
        }
    }
}

注釈

イベント引数の型 FabricClient.ServiceManagementClient.ServiceNotificationEventArgsは です。

適用対象