Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Configuration / PeerCustomResolverElement.cs / 1 / PeerCustomResolverElement.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Configuration
{
using System.Configuration;
using System.ServiceModel.Description;
using System.Globalization;
using System.Net;
using System.Net.Security;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.PeerResolvers;
using System.ComponentModel;
public sealed partial class PeerCustomResolverElement : ConfigurationElement
{
[ConfigurationProperty(ConfigurationStrings.Address, DefaultValue = null, Options = ConfigurationPropertyOptions.None)]
public Uri Address
{
get {return (Uri) base[ConfigurationStrings.Address]; }
set {base[ConfigurationStrings.Address] = value; }
}
[ConfigurationProperty(ConfigurationStrings.Headers)]
public AddressHeaderCollectionElement Headers
{
get { return (AddressHeaderCollectionElement)base[ConfigurationStrings.Headers]; }
}
[ConfigurationProperty(ConfigurationStrings.Identity)]
public IdentityElement Identity
{
get { return (IdentityElement)base[ConfigurationStrings.Identity]; }
}
[ConfigurationProperty(ConfigurationStrings.Binding, DefaultValue = "")]
[StringValidator(MinLength = 0)]
public string Binding
{
get { return (string)base[ConfigurationStrings.Binding]; }
set { base[ConfigurationStrings.Binding] = value; }
}
[ConfigurationProperty(ConfigurationStrings.BindingConfiguration, DefaultValue = "")]
[StringValidator(MinLength = 0)]
public string BindingConfiguration
{
get { return (string)base[ConfigurationStrings.BindingConfiguration]; }
set { base[ConfigurationStrings.BindingConfiguration] = value; }
}
[ConfigurationProperty(ConfigurationStrings.PeerResolverType, DefaultValue = "")]
[StringValidator(MinLength = 0)]
public string ResolverType
{
get { return (string)base[ConfigurationStrings.PeerResolverType]; }
set { base[ConfigurationStrings.PeerResolverType] = value; }
}
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)
{
this.BindingConfiguration = PeerStrings.PeerCustomResolver+Guid.NewGuid().ToString();
string sectionName;
BindingsSection.TryAdd(this.BindingConfiguration,
settings.Binding,
out sectionName);
this.Binding = sectionName;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- dataprotectionpermission.cs
- SelectionRangeConverter.cs
- CrossAppDomainChannel.cs
- DataSourceGeneratorException.cs
- WebControlParameterProxy.cs
- EntityCommandCompilationException.cs
- QuaternionAnimationBase.cs
- PrtTicket_Editor.cs
- ServiceDescriptions.cs
- Operators.cs
- CollectionBase.cs
- MetadataArtifactLoader.cs
- CodeDOMUtility.cs
- PropertyValueChangedEvent.cs
- TransactionContextValidator.cs
- TextStore.cs
- SqlMethodAttribute.cs
- MemberRestriction.cs
- PcmConverter.cs
- BeginEvent.cs
- RowToFieldTransformer.cs
- Timeline.cs
- ToolStrip.cs
- AddInController.cs
- SortQuery.cs
- TypeUtil.cs
- BlockCollection.cs
- HttpFormatExtensions.cs
- VoiceInfo.cs
- RadioButton.cs
- Interlocked.cs
- IdentitySection.cs
- ExpanderAutomationPeer.cs
- OrderedDictionary.cs
- Configuration.cs
- PolygonHotSpot.cs
- DetailsViewDeleteEventArgs.cs
- HashMembershipCondition.cs
- UnlockInstanceCommand.cs
- Variable.cs
- ConfigurationException.cs
- ControlType.cs
- ProcessHostMapPath.cs
- ScriptComponentDescriptor.cs
- ExceptionHandlers.cs
- ImplicitInputBrush.cs
- SplayTreeNode.cs
- DataGridBeginningEditEventArgs.cs
- EditorPartCollection.cs
- AccessedThroughPropertyAttribute.cs
- NavigationWindowAutomationPeer.cs
- DefaultWorkflowSchedulerService.cs
- ScrollItemProviderWrapper.cs
- DatePicker.cs
- TableCell.cs
- SocketPermission.cs
- FrameAutomationPeer.cs
- TreeNode.cs
- DropSource.cs
- ToolboxItem.cs
- FileDialog_Vista.cs
- SmtpMail.cs
- EditCommandColumn.cs
- SessionEndingCancelEventArgs.cs
- Activity.cs
- CodeIterationStatement.cs
- UnsafeNativeMethods.cs
- CodeRegionDirective.cs
- TextAdaptor.cs
- LeaseManager.cs
- EventManager.cs
- ScriptManager.cs
- ProjectionPruner.cs
- ApplicationServicesHostFactory.cs
- AsymmetricKeyExchangeDeformatter.cs
- FlowDocumentReader.cs
- HttpCookie.cs
- ipaddressinformationcollection.cs
- MsmqIntegrationSecurityElement.cs
- SiteMapPath.cs
- SID.cs
- PointLight.cs
- FormattedText.cs
- HandleRef.cs
- IsolationInterop.cs
- CompositeScriptReference.cs
- ObservableCollection.cs
- GeneralTransform.cs
- XsdCachingReader.cs
- Tablet.cs
- RawStylusSystemGestureInputReport.cs
- Style.cs
- TCPClient.cs
- BuildProvider.cs
- CompiledXpathExpr.cs
- Bold.cs
- HttpContext.cs
- COSERVERINFO.cs
- EventToken.cs
- DependencyPropertyChangedEventArgs.cs