Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StoreItemCollection.Loader.cs
- ToolBarDesigner.cs
- uribuilder.cs
- MonthCalendar.cs
- FontCacheLogic.cs
- SizeConverter.cs
- CharEntityEncoderFallback.cs
- CompilerTypeWithParams.cs
- CacheAxisQuery.cs
- ColorDialog.cs
- ContextMenu.cs
- NumberFunctions.cs
- TextTreeObjectNode.cs
- SystemInfo.cs
- unitconverter.cs
- NavigationProgressEventArgs.cs
- DynamicFilter.cs
- ServiceOperationInfoTypeConverter.cs
- GlyphInfoList.cs
- ObjectDataSourceEventArgs.cs
- AppLevelCompilationSectionCache.cs
- XmlCDATASection.cs
- DocumentReferenceCollection.cs
- AlternationConverter.cs
- CommonObjectSecurity.cs
- Command.cs
- XmlEventCache.cs
- SqlProfileProvider.cs
- WebConfigurationManager.cs
- PointHitTestParameters.cs
- SpellerInterop.cs
- MachinePropertyVariants.cs
- TemplateXamlTreeBuilder.cs
- Evaluator.cs
- FieldTemplateUserControl.cs
- TypeBuilder.cs
- DecimalAnimation.cs
- AssemblyAttributesGoHere.cs
- SinglePhaseEnlistment.cs
- Matrix3DValueSerializer.cs
- SecurityDocument.cs
- QuadraticBezierSegment.cs
- FloaterBaseParaClient.cs
- Compiler.cs
- VsPropertyGrid.cs
- TextMetrics.cs
- HandlerWithFactory.cs
- SendActivity.cs
- WriteFileContext.cs
- PeerPresenceInfo.cs
- UIElement3DAutomationPeer.cs
- RubberbandSelector.cs
- SocketAddress.cs
- HtmlElement.cs
- RouteCollection.cs
- StrongNamePublicKeyBlob.cs
- IUnknownConstantAttribute.cs
- Number.cs
- Vector3DCollectionConverter.cs
- TimeoutException.cs
- RightNameExpirationInfoPair.cs
- LayoutTable.cs
- ValueExpressions.cs
- Trigger.cs
- SettingsPropertyNotFoundException.cs
- GeometryModel3D.cs
- UnsafeMethods.cs
- Single.cs
- SliderAutomationPeer.cs
- DataSourceXmlClassAttribute.cs
- SHA256CryptoServiceProvider.cs
- LayoutTable.cs
- BooleanKeyFrameCollection.cs
- GridViewCancelEditEventArgs.cs
- XPathNodeInfoAtom.cs
- ProxyWebPartManagerDesigner.cs
- ASCIIEncoding.cs
- SignedInfo.cs
- ConfigXmlReader.cs
- DbConnectionFactory.cs
- StylusButtonEventArgs.cs
- ToolStripContentPanel.cs
- SimpleWorkerRequest.cs
- RTLAwareMessageBox.cs
- FontDifferentiator.cs
- RowToFieldTransformer.cs
- RoleService.cs
- ObjectStorage.cs
- DisplayNameAttribute.cs
- EnvelopedPkcs7.cs
- HtmlSelect.cs
- ExpressionsCollectionConverter.cs
- Material.cs
- HtmlInputHidden.cs
- SqlUserDefinedTypeAttribute.cs
- ParameterInfo.cs
- UnknownBitmapEncoder.cs
- SpotLight.cs
- ServiceInstanceProvider.cs
- ToolStripItemRenderEventArgs.cs