internal void ApplyConfiguration(PeerCustomResolverSettings settings)
        {
            if (settings == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("settings");
            }
            if (this.Address != null)
            {
                settings.Address = new EndpointAddress(this.Address, ConfigLoader.LoadIdentity(this.Identity), this.Headers.Headers);
            }
            settings.BindingSection = this.Binding;
            settings.BindingConfiguration = this.BindingConfiguration;

            if (!String.IsNullOrEmpty(this.Binding) && !String.IsNullOrEmpty(this.BindingConfiguration))
                settings.Binding = ConfigLoader.LookupBinding(this.Binding, this.BindingConfiguration);
            if (!String.IsNullOrEmpty(this.ResolverType))
            {
                Type myResolverType = Type.GetType(this.ResolverType, false);
                if (myResolverType != null)
                {
                    settings.Resolver = Activator.CreateInstance(myResolverType) as PeerResolver;
                }
                else
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(
                        SR.GetString(SR.PeerResolverInvalid, this.ResolverType)));
                }
            }
        }
 internal void InitializeFrom(PeerCustomResolverSettings settings)
 {
     if (settings == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("settings");
     }
     if (settings.Address != null)
     {
         this.Address = settings.Address.Uri;
         this.Identity.InitializeFrom(settings.Address.Identity);
     }
     if (settings.Resolver != null)
     {
         this.ResolverType = settings.Resolver.GetType().AssemblyQualifiedName;
     }
     if (settings.Binding != null)
     {
         string str;
         this.BindingConfiguration = "PeerCustomResolver" + Guid.NewGuid().ToString();
         BindingsSection.TryAdd(this.BindingConfiguration, settings.Binding, out str);
         this.Binding = str;
     }
 }
 internal void InitializeFrom(PeerCustomResolverSettings settings)
 {
     if (settings == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("settings");
     }
     if (settings.Address != null)
     {
         SetPropertyValueIfNotDefaultValue(ConfigurationStrings.Address, settings.Address.Uri);
         this.Identity.InitializeFrom(settings.Address.Identity);
     }
     if (settings.Resolver != null)
     {
         SetPropertyValueIfNotDefaultValue(ConfigurationStrings.PeerResolverType, settings.Resolver.GetType().AssemblyQualifiedName);
     }
     if (settings.Binding != null)
     {
         SetPropertyValueIfNotDefaultValue(ConfigurationStrings.BindingConfiguration, PeerStrings.PeerCustomResolver + Guid.NewGuid().ToString());
         string sectionName;
         BindingsSection.TryAdd(this.BindingConfiguration,
             settings.Binding,
             out sectionName);
         this.Binding = sectionName;
     }
 }
 public PeerResolverSettings() { customSettings = new PeerCustomResolverSettings(); }
 public PeerResolverSettings()
 {
     customSettings = new PeerCustomResolverSettings();
 }