Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Net / System / Net / Configuration / WebRequestModuleElement.cs / 1 / WebRequestModuleElement.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Net.Configuration { using System; using System.Configuration; using System.ComponentModel; using System.Globalization; using System.Reflection; using System.Security.Permissions; public sealed class WebRequestModuleElement : ConfigurationElement { public WebRequestModuleElement() { this.properties.Add(this.prefix); this.properties.Add(this.type); } public WebRequestModuleElement(string prefix, string type) : this() { this.Prefix = prefix; this[this.type] = new TypeAndName(type); } public WebRequestModuleElement(string prefix, Type type) : this() { this.Prefix = prefix; this.Type = type; } protected override ConfigurationPropertyCollection Properties { get { return this.properties; } } [ConfigurationProperty(ConfigurationStrings.Prefix, IsRequired=true, IsKey = true)] public string Prefix { get { return (string)this[this.prefix]; } set { this[this.prefix] = value; } } [ConfigurationProperty(ConfigurationStrings.Type)] [TypeConverter(typeof(TypeTypeConverter))] public Type Type { get { TypeAndName typeName = (TypeAndName)this[this.type]; if (typeName != null) { return typeName.type; } else { return null; } } set { this[this.type] = new TypeAndName(value); } } internal string Key { get { return this.Prefix; } } ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection(); readonly ConfigurationProperty prefix = new ConfigurationProperty(ConfigurationStrings.Prefix, typeof(string), null, ConfigurationPropertyOptions.IsKey); readonly ConfigurationProperty type = new ConfigurationProperty(ConfigurationStrings.Type, typeof(TypeAndName), null, new TypeTypeConverter(), null, ConfigurationPropertyOptions.None); 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 TypeTypeConverter : 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); } } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MetadataItemEmitter.cs
- LocationEnvironment.cs
- WebPartActionVerb.cs
- VectorAnimationBase.cs
- ComNativeDescriptor.cs
- WindowsImpersonationContext.cs
- SqlBinder.cs
- MetabaseReader.cs
- TemplatePropertyEntry.cs
- FontWeight.cs
- XmlComment.cs
- InheritedPropertyChangedEventArgs.cs
- DataTableCollection.cs
- ChangeBlockUndoRecord.cs
- InstanceNormalEvent.cs
- CodeTypeOfExpression.cs
- ComboBoxDesigner.cs
- Interlocked.cs
- AccessDataSourceView.cs
- MessageFilterTable.cs
- nulltextnavigator.cs
- ProcessRequestArgs.cs
- FixedFlowMap.cs
- FrameworkElement.cs
- IpcManager.cs
- BookmarkEventArgs.cs
- RuntimeIdentifierPropertyAttribute.cs
- WSDualHttpBindingCollectionElement.cs
- ExternalException.cs
- MailMessageEventArgs.cs
- SiteMapDataSource.cs
- SubqueryTrackingVisitor.cs
- future.cs
- ExpressionBinding.cs
- DataSourceGeneratorException.cs
- DockingAttribute.cs
- MSAANativeProvider.cs
- EndpointDiscoveryBehavior.cs
- ExcludePathInfo.cs
- HostingEnvironment.cs
- TypeForwardedToAttribute.cs
- LightweightCodeGenerator.cs
- MetafileHeaderEmf.cs
- HttpCapabilitiesBase.cs
- StringCollection.cs
- BitmapEditor.cs
- WebPartMenu.cs
- ThreadBehavior.cs
- TiffBitmapEncoder.cs
- PermissionAttributes.cs
- MutexSecurity.cs
- XmlUtf8RawTextWriter.cs
- XmlReader.cs
- UInt32Storage.cs
- TableColumn.cs
- DesignerDataStoredProcedure.cs
- _UriTypeConverter.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- WmlPhoneCallAdapter.cs
- TypeRestriction.cs
- StateDesigner.Helpers.cs
- SQLDecimalStorage.cs
- BrowserDefinitionCollection.cs
- XmlILConstructAnalyzer.cs
- VisualProxy.cs
- CodeVariableDeclarationStatement.cs
- ImageListUtils.cs
- DeviceContext.cs
- ExpressionParser.cs
- AddInAdapter.cs
- MenuItemBindingCollection.cs
- CodeArrayIndexerExpression.cs
- CodeCommentStatementCollection.cs
- ListViewItem.cs
- Pair.cs
- MasterPageBuildProvider.cs
- Normalization.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- ChangePassword.cs
- KeyboardDevice.cs
- RsaKeyIdentifierClause.cs
- ValidatedControlConverter.cs
- UnmanagedBitmapWrapper.cs
- contentDescriptor.cs
- ISFTagAndGuidCache.cs
- Parallel.cs
- Inflater.cs
- GroupQuery.cs
- TcpServerChannel.cs
- DockPanel.cs
- CompilerResults.cs
- Int64.cs
- OptimizedTemplateContentHelper.cs
- DXD.cs
- CSharpCodeProvider.cs
- KeyFrames.cs
- PublishLicense.cs
- SqlMethodAttribute.cs
- DataReceivedEventArgs.cs
- JsonMessageEncoderFactory.cs