Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Configuration / SoapExtensionTypeElement.cs / 1305376 / SoapExtensionTypeElement.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Web.Services.Configuration
{
using System;
using System.ComponentModel;
using System.Configuration;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Security.Permissions;
public sealed class SoapExtensionTypeElement : ConfigurationElement
{
// These three constructors are used by the configuration system.
public SoapExtensionTypeElement() : base()
{
this.properties.Add(this.group);
this.properties.Add(this.priority);
this.properties.Add(this.type);
}
public SoapExtensionTypeElement(string type, int priority, PriorityGroup group) : this()
{
this.Type = Type.GetType(type, true, true);
this.Priority = priority;
this.Group = group;
}
public SoapExtensionTypeElement(Type type, int priority, PriorityGroup group) :
this(type.AssemblyQualifiedName, priority, group)
{
}
[ConfigurationProperty("group", IsKey = true, DefaultValue = PriorityGroup.Low)]
public PriorityGroup Group
{
get { return (PriorityGroup)base[this.group]; }
set
{
if (Enum.IsDefined(typeof(PriorityGroup), value))
{
base[this.group] = value;
}
else
{
throw new ArgumentException(Res.GetString(Res.Invalid_priority_group_value), "value");
}
}
}
[ConfigurationProperty("priority", IsKey = true, DefaultValue = 0)]
[IntegerValidator(MinValue = 0)]
public int Priority
{
get { return (int)base[this.priority]; }
set { base[this.priority] = value; }
}
[ConfigurationProperty("type", IsKey = true)]
[TypeConverter(typeof(TypeTypeConverter))]
public Type Type
{
get {
return (Type)base[this.type];
}
set
{
base[this.type] = value;
}
}
protected override ConfigurationPropertyCollection Properties
{
get { return this.properties; }
}
ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
readonly ConfigurationProperty group = new ConfigurationProperty("group", typeof(PriorityGroup), PriorityGroup.Low, new EnumConverter(typeof(PriorityGroup)), null, ConfigurationPropertyOptions.IsKey);
readonly ConfigurationProperty priority = new ConfigurationProperty("priority", typeof(int), 0, null, new IntegerValidator( 0, int.MaxValue ), ConfigurationPropertyOptions.IsKey);
readonly ConfigurationProperty type = new ConfigurationProperty("type", typeof(Type), null, new TypeTypeConverter(), null, ConfigurationPropertyOptions.IsKey);
}
class TypeTypeConverter : TypeAndNameConverter {
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) {
return base.CanConvertFrom(context, sourceType);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) {
if (value is string) {
TypeAndName baseValue = (TypeAndName)base.ConvertFrom(context, culture, value);
return baseValue.type;
}
return base.ConvertFrom(context, culture, value);
}
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
if (destinationType == typeof(string)) {
TypeAndName castedValue = new TypeAndName((Type)value);
return base.ConvertTo(context, culture, castedValue, destinationType);
}
return base.ConvertTo(context, culture, value, destinationType);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RtType.cs
- ImageList.cs
- AspNetPartialTrustHelpers.cs
- PageSettings.cs
- RSAPKCS1KeyExchangeFormatter.cs
- StreamingContext.cs
- StdValidatorsAndConverters.cs
- ModelServiceImpl.cs
- CodeAccessSecurityEngine.cs
- AffineTransform3D.cs
- HtmlButton.cs
- GeneralTransform2DTo3DTo2D.cs
- NetTcpBindingElement.cs
- ISAPIApplicationHost.cs
- DataTemplateKey.cs
- FacetDescription.cs
- FormDesigner.cs
- NetMsmqBindingCollectionElement.cs
- Zone.cs
- ImmutableClientRuntime.cs
- TransformGroup.cs
- SectionInformation.cs
- NullableLongSumAggregationOperator.cs
- Panel.cs
- CommandManager.cs
- HttpWriter.cs
- ComplexTypeEmitter.cs
- TextPattern.cs
- WebColorConverter.cs
- UTF8Encoding.cs
- dsa.cs
- CompilerGlobalScopeAttribute.cs
- WindowPattern.cs
- ListViewCancelEventArgs.cs
- EntitySetBase.cs
- COM2PropertyDescriptor.cs
- DelegateSerializationHolder.cs
- SearchForVirtualItemEventArgs.cs
- DiscoveryDocumentSerializer.cs
- DBConnectionString.cs
- WindowsListViewScroll.cs
- ReadOnlyCollectionBuilder.cs
- EdmComplexTypeAttribute.cs
- ServerIdentity.cs
- SqlParameterCollection.cs
- GridViewDeleteEventArgs.cs
- SpecularMaterial.cs
- CompilerError.cs
- DeadLetterQueue.cs
- ResourcesBuildProvider.cs
- ButtonFlatAdapter.cs
- StorageTypeMapping.cs
- AutomationTextAttribute.cs
- EntityContainerEntitySet.cs
- SqlEnums.cs
- XAMLParseException.cs
- AuthenticationServiceManager.cs
- Compiler.cs
- ToolStrip.cs
- DbConnectionStringBuilder.cs
- XmlSchemas.cs
- Literal.cs
- MruCache.cs
- WebRequestModuleElement.cs
- ArgumentDesigner.xaml.cs
- ZoneLinkButton.cs
- ImageListUtils.cs
- QuestionEventArgs.cs
- RoutedEventArgs.cs
- CommandValueSerializer.cs
- TextServicesPropertyRanges.cs
- baseaxisquery.cs
- InputMethodStateChangeEventArgs.cs
- DataGridColumnCollection.cs
- HyperLinkField.cs
- DbProviderConfigurationHandler.cs
- XPathAncestorIterator.cs
- DataContractSerializerMessageContractImporter.cs
- ImageCodecInfoPrivate.cs
- Cursors.cs
- HtmlTable.cs
- PropertyValueChangedEvent.cs
- RequestCachePolicyConverter.cs
- Latin1Encoding.cs
- XmlSchemaGroupRef.cs
- RemoteWebConfigurationHostStream.cs
- NativeMethodsOther.cs
- WizardPanel.cs
- FlowLayoutPanel.cs
- DbConnectionStringCommon.cs
- ActivityCodeDomReferenceService.cs
- PointF.cs
- DataColumn.cs
- SortDescriptionCollection.cs
- UserPersonalizationStateInfo.cs
- WindowInteractionStateTracker.cs
- SamlAttributeStatement.cs
- MemberAccessException.cs
- CaseInsensitiveComparer.cs
- InOutArgument.cs