Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Configuration / TypeElement.cs / 1305376 / TypeElement.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Web.Services.Configuration { using System; using System.Configuration; using System.ComponentModel; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.Security.Permissions; public sealed class TypeElement : ConfigurationElement { // These three constructors are used by the configuration system. public TypeElement() : base() { this.properties.Add(this.type); } public TypeElement(string type) : this() { base[this.type] = new TypeAndName(type); } public TypeElement(Type type) : this(type.AssemblyQualifiedName) { } [ConfigurationProperty("type", IsKey = true)] [TypeConverter(typeof(TypeAndNameConverter))] public Type Type { get { return ((TypeAndName)base[this.type]).type; } set { if (value == null) { throw new ArgumentNullException("value"); } base[this.type] = new TypeAndName(value); } } protected override ConfigurationPropertyCollection Properties { get { return this.properties; } } ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection(); readonly ConfigurationProperty type = new ConfigurationProperty("type", typeof(TypeAndName), null, new TypeAndNameConverter(), null, ConfigurationPropertyOptions.IsKey); } class TypeAndName { public TypeAndName(string name) { this.type = Type.GetType(name, true, true); this.name = name; } public TypeAndName(Type type) { this.type = type; } public override int GetHashCode() { return type.GetHashCode(); } public override bool Equals(object comparand) { return type.Equals(((TypeAndName) comparand).type); } public readonly Type type; public readonly string name; } class TypeAndNameConverter : TypeConverter { public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { if (sourceType == typeof(string)) { return true; } return base.CanConvertFrom(context, sourceType); } public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is string) { return new TypeAndName((string) value); } return base.ConvertFrom(context, culture, value); } public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { TypeAndName castedValue = (TypeAndName) value; return castedValue.name == null ? castedValue.type.AssemblyQualifiedName : castedValue.name; } return base.ConvertTo(context, culture, value, destinationType); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Web.Services.Configuration { using System; using System.Configuration; using System.ComponentModel; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.Security.Permissions; public sealed class TypeElement : ConfigurationElement { // These three constructors are used by the configuration system. public TypeElement() : base() { this.properties.Add(this.type); } public TypeElement(string type) : this() { base[this.type] = new TypeAndName(type); } public TypeElement(Type type) : this(type.AssemblyQualifiedName) { } [ConfigurationProperty("type", IsKey = true)] [TypeConverter(typeof(TypeAndNameConverter))] public Type Type { get { return ((TypeAndName)base[this.type]).type; } set { if (value == null) { throw new ArgumentNullException("value"); } base[this.type] = new TypeAndName(value); } } protected override ConfigurationPropertyCollection Properties { get { return this.properties; } } ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection(); readonly ConfigurationProperty type = new ConfigurationProperty("type", typeof(TypeAndName), null, new TypeAndNameConverter(), null, ConfigurationPropertyOptions.IsKey); } class TypeAndName { public TypeAndName(string name) { this.type = Type.GetType(name, true, true); this.name = name; } public TypeAndName(Type type) { this.type = type; } public override int GetHashCode() { return type.GetHashCode(); } public override bool Equals(object comparand) { return type.Equals(((TypeAndName) comparand).type); } public readonly Type type; public readonly string name; } class TypeAndNameConverter : TypeConverter { public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { if (sourceType == typeof(string)) { return true; } return base.CanConvertFrom(context, sourceType); } public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is string) { return new TypeAndName((string) value); } return base.ConvertFrom(context, culture, value); } public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { TypeAndName castedValue = (TypeAndName) value; return castedValue.name == null ? castedValue.type.AssemblyQualifiedName : castedValue.name; } 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
- ImageIndexConverter.cs
- WorkflowInstanceUnhandledExceptionRecord.cs
- SettingsProviderCollection.cs
- SystemInfo.cs
- DataGridItem.cs
- Highlights.cs
- ViewKeyConstraint.cs
- DropShadowBitmapEffect.cs
- DaylightTime.cs
- CodeSnippetCompileUnit.cs
- ReflectionHelper.cs
- SQLDouble.cs
- CreateUserWizard.cs
- FolderBrowserDialog.cs
- CapiSafeHandles.cs
- invalidudtexception.cs
- StylusOverProperty.cs
- InteropBitmapSource.cs
- ParagraphVisual.cs
- AnnouncementService.cs
- AbstractSvcMapFileLoader.cs
- _SslState.cs
- UInt64Converter.cs
- RelationshipWrapper.cs
- TransactedReceiveData.cs
- AdRotator.cs
- PipelineModuleStepContainer.cs
- FormViewRow.cs
- CompModSwitches.cs
- IdentityManager.cs
- Point3DKeyFrameCollection.cs
- InvalidProgramException.cs
- HyperLinkStyle.cs
- HttpChannelBindingToken.cs
- TransactionCache.cs
- TextBoxView.cs
- WmfPlaceableFileHeader.cs
- GetTokenRequest.cs
- RichTextBoxContextMenu.cs
- XMLSyntaxException.cs
- RichTextBox.cs
- IUnknownConstantAttribute.cs
- Camera.cs
- _ScatterGatherBuffers.cs
- RuleSetCollection.cs
- Misc.cs
- SqlDataSourceView.cs
- SingleObjectCollection.cs
- BuildProvidersCompiler.cs
- DataTableCollection.cs
- ScriptControl.cs
- RequestQueryParser.cs
- WorkflowOperationContext.cs
- ProcessInfo.cs
- AttributeUsageAttribute.cs
- NonClientArea.cs
- SlotInfo.cs
- WorkflowApplicationAbortedEventArgs.cs
- Pen.cs
- ButtonChrome.cs
- ArrayList.cs
- ArraySet.cs
- OleDbCommandBuilder.cs
- WindowsListBox.cs
- GridViewCellAutomationPeer.cs
- TimeSpanValidatorAttribute.cs
- X509CertificateCollection.cs
- ConfigXmlDocument.cs
- BackgroundWorker.cs
- DesignerActionVerbItem.cs
- AttachInfo.cs
- ImageDrawing.cs
- Directory.cs
- Activity.cs
- SqlStatistics.cs
- IgnoreSection.cs
- ToolStripRenderEventArgs.cs
- DataGridAutoFormat.cs
- SafeRightsManagementPubHandle.cs
- FontWeights.cs
- PropertyEmitter.cs
- ServiceModelPerformanceCounters.cs
- XPathDocument.cs
- jithelpers.cs
- IntranetCredentialPolicy.cs
- PagePropertiesChangingEventArgs.cs
- ScrollBarAutomationPeer.cs
- Model3D.cs
- PackUriHelper.cs
- EntityStoreSchemaGenerator.cs
- UndoEngine.cs
- SamlAttributeStatement.cs
- SafeRightsManagementQueryHandle.cs
- BuildProvider.cs
- SplineKeyFrames.cs
- DeflateStream.cs
- NamespaceQuery.cs
- CoreSwitches.cs
- ModifiableIteratorCollection.cs
- StringUtil.cs