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
- TextParagraphCache.cs
- BinHexDecoder.cs
- IISMapPath.cs
- WorkflowTransactionOptions.cs
- CachedResourceDictionaryExtension.cs
- DispatcherProcessingDisabled.cs
- InputManager.cs
- WebPartVerbCollection.cs
- SecurityRuntime.cs
- StretchValidation.cs
- ResourcesGenerator.cs
- VisualStyleTypesAndProperties.cs
- ProcessStartInfo.cs
- FontFamilyIdentifier.cs
- HttpHandlerAction.cs
- RoutedEventHandlerInfo.cs
- HttpTransportManager.cs
- FunctionMappingTranslator.cs
- AudienceUriMode.cs
- ActivityDesignerLayoutSerializers.cs
- HwndSource.cs
- NestedContainer.cs
- RowsCopiedEventArgs.cs
- XmlSchemaSimpleContentRestriction.cs
- XPathAxisIterator.cs
- TransformGroup.cs
- Button.cs
- PerformanceCountersBase.cs
- CodeTypeOfExpression.cs
- BehaviorDragDropEventArgs.cs
- SystemThemeKey.cs
- XmlNodeWriter.cs
- WebScriptServiceHostFactory.cs
- PropertyAccessVisitor.cs
- ResourcePermissionBaseEntry.cs
- webbrowsersite.cs
- CanExecuteRoutedEventArgs.cs
- GrammarBuilderBase.cs
- LongAverageAggregationOperator.cs
- Int16.cs
- EpmSourceTree.cs
- X509Utils.cs
- Events.cs
- DataTablePropertyDescriptor.cs
- EmptyEnumerator.cs
- MatrixTransform3D.cs
- SemanticResolver.cs
- SubpageParagraph.cs
- SQLChars.cs
- Nodes.cs
- TextEditorCopyPaste.cs
- DomainConstraint.cs
- HtmlTernaryTree.cs
- StrokeCollection2.cs
- WsatStrings.cs
- SqlBooleanMismatchVisitor.cs
- RTLAwareMessageBox.cs
- ComponentEditorPage.cs
- ImageListImage.cs
- NullPackagingPolicy.cs
- QilStrConcatenator.cs
- CellIdBoolean.cs
- QilSortKey.cs
- KnownAssembliesSet.cs
- DataServiceClientException.cs
- SubMenuStyle.cs
- ToolStripTextBox.cs
- SHA384.cs
- Rectangle.cs
- RankException.cs
- CommunicationObject.cs
- TypeGeneratedEventArgs.cs
- RubberbandSelector.cs
- MiniModule.cs
- CodeTypeDeclaration.cs
- ToolStripOverflowButton.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- InternalBase.cs
- XmlDocumentSchema.cs
- HttpMethodConstraint.cs
- DownloadProgressEventArgs.cs
- HostProtectionException.cs
- HostSecurityManager.cs
- FixedSOMTableRow.cs
- webeventbuffer.cs
- SmiRequestExecutor.cs
- ReceiveActivityDesignerTheme.cs
- SizeKeyFrameCollection.cs
- ImageCodecInfo.cs
- UIPropertyMetadata.cs
- SoundPlayer.cs
- COM2IProvidePropertyBuilderHandler.cs
- EventLogSession.cs
- OdbcException.cs
- SafeSystemMetrics.cs
- DrawingAttributeSerializer.cs
- ApplicationFileCodeDomTreeGenerator.cs
- UmAlQuraCalendar.cs
- BufferedGraphicsManager.cs
- XPathNavigatorReader.cs