|
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
namespace System.ServiceModel.Configuration
{
using System;
using System.ServiceModel.Channels;
using System.Configuration;
using System.Globalization;
using System.Xml;
public abstract class BindingElementExtensionElement : ServiceModelExtensionElement
{
public virtual void ApplyConfiguration(BindingElement bindingElement)
{
// Some items make sense just as tags and have no other configuration
if (null == bindingElement)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bindingElement");
}
}
public abstract Type BindingElementType
{
get;
}
protected internal abstract BindingElement CreateBindingElement();
protected internal virtual void InitializeFrom(BindingElement bindingElement)
{
if (bindingElement == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("bindingElement");
}
if (bindingElement.GetType() != this.BindingElementType)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("bindingElement",
SR.GetString(SR.ConfigInvalidTypeForBindingElement,
this.BindingElementType.ToString(),
bindingElement.GetType().ToString()));
}
}
}
}
|