Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / Serialization / Configuration / XmlSerializerSection.cs / 1305376 / XmlSerializerSection.cs
namespace System.Xml.Serialization.Configuration { using System; using System.IO; using System.Web; using System.Configuration; using System.ComponentModel; using System.Globalization; using System.Reflection; using System.Resources; public sealed class XmlSerializerSection : ConfigurationSection { public XmlSerializerSection() { this.properties.Add(this.checkDeserializeAdvances); this.properties.Add(this.tempFilesLocation); } protected override ConfigurationPropertyCollection Properties { get { return this.properties; } } [ConfigurationProperty(ConfigurationStrings.CheckDeserializeAdvances, DefaultValue = false)] public bool CheckDeserializeAdvances { get { return (bool)this[this.checkDeserializeAdvances]; } set { this[this.checkDeserializeAdvances] = value; } } [ConfigurationProperty(ConfigurationStrings.TempFilesLocation, DefaultValue = null)] public string TempFilesLocation { get { return (string)this[this.tempFilesLocation]; } set { this[this.tempFilesLocation] = value; } } ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection(); // Supply a type converter, even though it's a plain type converter, to get around ConfigurationProperty's internal // Enum conversion routine. The internal one is case-sensitive, we want this to be case-insensitive. readonly ConfigurationProperty checkDeserializeAdvances = new ConfigurationProperty(ConfigurationStrings.CheckDeserializeAdvances, typeof(bool), false, ConfigurationPropertyOptions.None); readonly ConfigurationProperty tempFilesLocation = new ConfigurationProperty(ConfigurationStrings.TempFilesLocation, typeof(string), null, null, new RootedPathValidator(), ConfigurationPropertyOptions.None); } public class RootedPathValidator : ConfigurationValidatorBase { public override bool CanValidate(Type type) { return (type == typeof(string)); } public override void Validate(object value) { string tempDirectory = value as string; if (string.IsNullOrEmpty(tempDirectory)) return; tempDirectory = tempDirectory.Trim(); if (string.IsNullOrEmpty(tempDirectory)) return; if (!Path.IsPathRooted(tempDirectory)) { // Make sure the path is not relative (VSWhidbey 260075) throw new ConfigurationErrorsException(); } char firstChar = tempDirectory[0]; if (firstChar == Path.DirectorySeparatorChar || firstChar == Path.AltDirectorySeparatorChar) { // Make sure the path is explicitly rooted throw new ConfigurationErrorsException(); } } } } // 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.IO; using System.Web; using System.Configuration; using System.ComponentModel; using System.Globalization; using System.Reflection; using System.Resources; public sealed class XmlSerializerSection : ConfigurationSection { public XmlSerializerSection() { this.properties.Add(this.checkDeserializeAdvances); this.properties.Add(this.tempFilesLocation); } protected override ConfigurationPropertyCollection Properties { get { return this.properties; } } [ConfigurationProperty(ConfigurationStrings.CheckDeserializeAdvances, DefaultValue = false)] public bool CheckDeserializeAdvances { get { return (bool)this[this.checkDeserializeAdvances]; } set { this[this.checkDeserializeAdvances] = value; } } [ConfigurationProperty(ConfigurationStrings.TempFilesLocation, DefaultValue = null)] public string TempFilesLocation { get { return (string)this[this.tempFilesLocation]; } set { this[this.tempFilesLocation] = value; } } ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection(); // Supply a type converter, even though it's a plain type converter, to get around ConfigurationProperty's internal // Enum conversion routine. The internal one is case-sensitive, we want this to be case-insensitive. readonly ConfigurationProperty checkDeserializeAdvances = new ConfigurationProperty(ConfigurationStrings.CheckDeserializeAdvances, typeof(bool), false, ConfigurationPropertyOptions.None); readonly ConfigurationProperty tempFilesLocation = new ConfigurationProperty(ConfigurationStrings.TempFilesLocation, typeof(string), null, null, new RootedPathValidator(), ConfigurationPropertyOptions.None); } public class RootedPathValidator : ConfigurationValidatorBase { public override bool CanValidate(Type type) { return (type == typeof(string)); } public override void Validate(object value) { string tempDirectory = value as string; if (string.IsNullOrEmpty(tempDirectory)) return; tempDirectory = tempDirectory.Trim(); if (string.IsNullOrEmpty(tempDirectory)) return; if (!Path.IsPathRooted(tempDirectory)) { // Make sure the path is not relative (VSWhidbey 260075) throw new ConfigurationErrorsException(); } char firstChar = tempDirectory[0]; if (firstChar == Path.DirectorySeparatorChar || firstChar == Path.AltDirectorySeparatorChar) { // Make sure the path is explicitly rooted throw new ConfigurationErrorsException(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlWhitespace.cs
- SingleAnimation.cs
- SelectorAutomationPeer.cs
- HttpHandlerAction.cs
- XsdValidatingReader.cs
- BitmapEffectvisualstate.cs
- DiscoveryRequestHandler.cs
- DependencyPropertyHelper.cs
- ProxyWebPartManager.cs
- TransactionScope.cs
- EnglishPluralizationService.cs
- HttpCacheParams.cs
- TextElementEnumerator.cs
- GeneralTransform3D.cs
- hresults.cs
- BitmapDownload.cs
- WindowsFormsHostAutomationPeer.cs
- DefaultValueTypeConverter.cs
- TextEditorTables.cs
- InputReferenceExpression.cs
- ObjectItemAttributeAssemblyLoader.cs
- Page.cs
- TextServicesHost.cs
- ApplicationServiceHelper.cs
- SqlBuffer.cs
- DefaultProfileManager.cs
- DiagnosticsConfigurationHandler.cs
- BindStream.cs
- Scripts.cs
- LocationSectionRecord.cs
- CommandCollectionEditor.cs
- SimpleType.cs
- PixelFormats.cs
- EventMappingSettings.cs
- ResponseBodyWriter.cs
- PasswordTextContainer.cs
- NoPersistProperty.cs
- FacetEnabledSchemaElement.cs
- SchemaNamespaceManager.cs
- _ListenerRequestStream.cs
- ExpressionEvaluator.cs
- Set.cs
- FileStream.cs
- QilExpression.cs
- ContextQuery.cs
- HttpModuleActionCollection.cs
- LinkConverter.cs
- CopyAction.cs
- UIPermission.cs
- WorkflowOwnershipException.cs
- SchemaImporterExtension.cs
- CommandTreeTypeHelper.cs
- WebServiceParameterData.cs
- AuthenticationSection.cs
- _SpnDictionary.cs
- TextLineResult.cs
- LabelLiteral.cs
- WebServicesSection.cs
- PagerSettings.cs
- SystemNetHelpers.cs
- DefaultHttpHandler.cs
- httpstaticobjectscollection.cs
- MetadataArtifactLoaderComposite.cs
- VisualBasicSettingsConverter.cs
- BaseParser.cs
- SymDocumentType.cs
- ConfigXmlReader.cs
- CodeComment.cs
- LocalValueEnumerator.cs
- HtmlInputFile.cs
- CodeObjectCreateExpression.cs
- ListDictionaryInternal.cs
- DesignerLabelAdapter.cs
- DataBindingHandlerAttribute.cs
- SystemUdpStatistics.cs
- TypeListConverter.cs
- EventsTab.cs
- ViewRendering.cs
- MembershipUser.cs
- HtmlWindowCollection.cs
- ResourceWriter.cs
- ObjectListShowCommandsEventArgs.cs
- ResXResourceSet.cs
- TextEditorDragDrop.cs
- TableLayoutPanel.cs
- PolyLineSegmentFigureLogic.cs
- ITextView.cs
- XamlRtfConverter.cs
- StringSource.cs
- Annotation.cs
- ReflectionPermission.cs
- SafeReversePInvokeHandle.cs
- EdmComplexTypeAttribute.cs
- DataGridSortCommandEventArgs.cs
- DbConnectionPoolGroup.cs
- ApplicationSecurityInfo.cs
- TitleStyle.cs
- IApplicationTrustManager.cs
- Int32CAMarshaler.cs
- SafeLibraryHandle.cs