/// <summary>
        /// Creates a new instance of <typeparamref name="TService"/> using the factory method.
        /// Registers all subscriptions.
        /// </summary>
        /// <returns></returns>
        public TService Build()
        {
            _service = _serviceFactory(_context);
            Task.Run(async() =>
            {
                _loggingCallback?.Invoke($"Registering for notifications about service '{_context.ServiceName}'.");
                try
                {
                    var filter = new ServiceNotificationFilterDescription
                    {
                        Name = _context.ServiceName,
                        MatchPrimaryChangeOnly = true
                    };
                    _filterId = await _fabricClient.ServiceManager.RegisterServiceNotificationFilterAsync(filter);

                    _loggingCallback?.Invoke(
                        $"Succesfully registered for notifications about service '{_context.ServiceName}'.");
                }
                catch (Exception ex)
                {
                    _loggingCallback?.Invoke(
                        $"Failed to register for notifications about service '{_context.ServiceName}'. Error: {ex}");
                }
            });
            return(_service);
        }
コード例 #2
0
        public RegisterServiceNotificationFilterRequest(IFabricClient fabricClient, ServiceNotificationFilterDescription filterDescription, TimeSpan timeout)
            : base(fabricClient, timeout)
        {
            ThrowIf.Null(filterDescription, "filterDescription");

            this.FilterDescription = filterDescription;
        }