コード例 #1
0
        /// <summary>
        /// Creates the async version of the service
        /// </summary>
        /// <param name="service">Synchronous service proxy</param>
        public static AsyncDiscoveryServiceProxy ToAsyncService(this DiscoveryServiceProxy service)
        {
            if (!DiscoveryServiceConfigurationType.IsAssignableFrom(service.ServiceConfiguration.GetType()))
            {
                throw new InvalidOperationException($"Cannot create {nameof(AsyncDiscoveryServiceProxy)} from {nameof(DiscoveryServiceProxy)}, because a customer service configuration is used. Expected service configuration type is '{DiscoveryServiceConfigurationType}', but got '{service.ServiceConfiguration.GetType()}'");
            }

            var primaryEndpoint = _primaryEndpoint.Get(service.ServiceConfiguration);
            var asyncService    = new AsyncDiscoveryServiceProxy(primaryEndpoint, service.HomeRealmUri, service.ClientCredentials, service.DeviceCredentials);

            asyncService.Timeout                   = service.Timeout;
            asyncService.UserPrincipalName         = service.UserPrincipalName;
            asyncService.EndpointAutoSwitchEnabled = service.EndpointAutoSwitchEnabled;
            foreach (var behavior in service.ServiceConfiguration.CurrentServiceEndpoint.Behaviors)
            {
                asyncService.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(behavior);
            }
            return(asyncService);
        }
 public DiscoveryServiceContextInitializer(AsyncDiscoveryServiceProxy proxy) : base(proxy)
 {
 }