Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Xml / System / Xml / Serialization / Configuration / SchemaImporterExtensionElement.cs / 1 / SchemaImporterExtensionElement.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Xml.Serialization.Configuration { using System; using System.Configuration; using System.ComponentModel; using System.Globalization; using System.Reflection; using System.Security.Permissions; public sealed class SchemaImporterExtensionElement : ConfigurationElement { public SchemaImporterExtensionElement() { this.properties.Add(this.name); this.properties.Add(this.type); } public SchemaImporterExtensionElement(string name, string type) : this() { this.Name = name; this[this.type] = new TypeAndName(type); } public SchemaImporterExtensionElement(string name, Type type) : this() { this.Name = name; this.Type = type; } [ConfigurationProperty(ConfigurationStrings.Name, IsRequired=true, IsKey = true)] public string Name { get { return (string)this[this.name]; } set { this[this.name] = value; } } protected override ConfigurationPropertyCollection Properties { get { return this.properties; } } [ConfigurationProperty(ConfigurationStrings.Type, IsRequired=true, IsKey = false)] [TypeConverter(typeof(TypeTypeConverter))] public Type Type { get { return ((TypeAndName) this[this.type]).type; } set { this[this.type] = new TypeAndName(value); } } internal string Key { get { return this.Name; } } ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection(); readonly ConfigurationProperty name = new ConfigurationProperty(ConfigurationStrings.Name, typeof(string), null, ConfigurationPropertyOptions.IsKey); readonly ConfigurationProperty type = new ConfigurationProperty(ConfigurationStrings.Type, typeof(Type), null, new TypeTypeConverter(), null, ConfigurationPropertyOptions.IsRequired); 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); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Xml.Serialization.Configuration { using System; using System.Configuration; using System.ComponentModel; using System.Globalization; using System.Reflection; using System.Security.Permissions; public sealed class SchemaImporterExtensionElement : ConfigurationElement { public SchemaImporterExtensionElement() { this.properties.Add(this.name); this.properties.Add(this.type); } public SchemaImporterExtensionElement(string name, string type) : this() { this.Name = name; this[this.type] = new TypeAndName(type); } public SchemaImporterExtensionElement(string name, Type type) : this() { this.Name = name; this.Type = type; } [ConfigurationProperty(ConfigurationStrings.Name, IsRequired=true, IsKey = true)] public string Name { get { return (string)this[this.name]; } set { this[this.name] = value; } } protected override ConfigurationPropertyCollection Properties { get { return this.properties; } } [ConfigurationProperty(ConfigurationStrings.Type, IsRequired=true, IsKey = false)] [TypeConverter(typeof(TypeTypeConverter))] public Type Type { get { return ((TypeAndName) this[this.type]).type; } set { this[this.type] = new TypeAndName(value); } } internal string Key { get { return this.Name; } } ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection(); readonly ConfigurationProperty name = new ConfigurationProperty(ConfigurationStrings.Name, typeof(string), null, ConfigurationPropertyOptions.IsKey); readonly ConfigurationProperty type = new ConfigurationProperty(ConfigurationStrings.Type, typeof(Type), null, new TypeTypeConverter(), null, ConfigurationPropertyOptions.IsRequired); 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); } } } } // 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
- EntityContainer.cs
- XhtmlBasicImageAdapter.cs
- GridViewDeletedEventArgs.cs
- HttpServerVarsCollection.cs
- RegexCapture.cs
- ShaderEffect.cs
- BitmapEncoder.cs
- PropertyEmitter.cs
- DecoderFallbackWithFailureFlag.cs
- EntitySetBaseCollection.cs
- AutomationElementIdentifiers.cs
- ParameterBuilder.cs
- listitem.cs
- MembershipAdapter.cs
- ObjectItemCollection.cs
- Transform3DGroup.cs
- XmlElementAttributes.cs
- KeyMatchBuilder.cs
- ExtractorMetadata.cs
- ToolStripScrollButton.cs
- RoleGroup.cs
- StackOverflowException.cs
- FontStretch.cs
- CssTextWriter.cs
- VariableQuery.cs
- RuleCache.cs
- StylusPoint.cs
- BuildManagerHost.cs
- TerminateSequenceResponse.cs
- RowToParametersTransformer.cs
- ProxyAttribute.cs
- EventMap.cs
- _UriTypeConverter.cs
- CompModSwitches.cs
- IProvider.cs
- CustomAttributeBuilder.cs
- MgmtResManager.cs
- NavigationService.cs
- XmlLanguage.cs
- XmlDataDocument.cs
- NativeObjectSecurity.cs
- GACMembershipCondition.cs
- Freezable.cs
- BaseInfoTable.cs
- StylusPointPropertyId.cs
- QuaternionAnimationUsingKeyFrames.cs
- XmlSchemaComplexContentExtension.cs
- ResourcesBuildProvider.cs
- BuildManager.cs
- DataTableReader.cs
- BuildResult.cs
- WebAdminConfigurationHelper.cs
- XPathArrayIterator.cs
- ConfigurationValue.cs
- RegexReplacement.cs
- Missing.cs
- RemotingConfiguration.cs
- ContextBase.cs
- DockingAttribute.cs
- RegexStringValidatorAttribute.cs
- HandleExceptionArgs.cs
- RoutedCommand.cs
- PagerSettings.cs
- SimpleBitVector32.cs
- TaskExceptionHolder.cs
- RegistrationProxy.cs
- UpdateProgress.cs
- odbcmetadatacolumnnames.cs
- ExpressionConverter.cs
- TextureBrush.cs
- FocusManager.cs
- SelectedDatesCollection.cs
- ListItemsCollectionEditor.cs
- SpotLight.cs
- InplaceBitmapMetadataWriter.cs
- SpotLight.cs
- WorkflowRuntimeEndpoint.cs
- IDQuery.cs
- RenderData.cs
- MemoryMappedFileSecurity.cs
- Cursor.cs
- TextDpi.cs
- ReferencedAssembly.cs
- ElementNotAvailableException.cs
- XmlWellformedWriter.cs
- PathHelper.cs
- ContainerParaClient.cs
- SqlClientWrapperSmiStreamChars.cs
- DynamicFilterExpression.cs
- CollectionType.cs
- TransformerConfigurationWizardBase.cs
- ScriptDescriptor.cs
- SmiRequestExecutor.cs
- XamlTypeMapper.cs
- RestClientProxyHandler.cs
- streamingZipPartStream.cs
- TemplatedWizardStep.cs
- ItemDragEvent.cs
- SoapAttributes.cs
- TreeIterators.cs