Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Xml / System / Xml / Serialization / Configuration / XmlSerializerSection.cs / 1 / 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
- XmlReader.cs
- TextInfo.cs
- IPPacketInformation.cs
- BooleanFunctions.cs
- XsltQilFactory.cs
- ExclusiveTcpListener.cs
- RepeaterCommandEventArgs.cs
- ReferenceConverter.cs
- XsltException.cs
- GenerateScriptTypeAttribute.cs
- connectionpool.cs
- FixedDocumentSequencePaginator.cs
- XmlLanguageConverter.cs
- WorkflowQueuingService.cs
- BindingWorker.cs
- CodeSnippetStatement.cs
- CompilerResults.cs
- DropDownList.cs
- SplashScreen.cs
- TextServicesLoader.cs
- Int16.cs
- OutputScopeManager.cs
- ProcessHostFactoryHelper.cs
- Exceptions.cs
- DocumentsTrace.cs
- FormClosedEvent.cs
- brushes.cs
- KeyGesture.cs
- RichTextBoxConstants.cs
- Int32KeyFrameCollection.cs
- FormViewPagerRow.cs
- HttpConfigurationContext.cs
- PointLightBase.cs
- MetabaseServerConfig.cs
- PreviewKeyDownEventArgs.cs
- LayoutEvent.cs
- KnownTypeHelper.cs
- PrinterUnitConvert.cs
- PropertyMapper.cs
- Misc.cs
- ProfessionalColors.cs
- SqlClientMetaDataCollectionNames.cs
- PanelStyle.cs
- NavigateEvent.cs
- Control.cs
- HealthMonitoringSectionHelper.cs
- PingReply.cs
- WebAdminConfigurationHelper.cs
- MenuCommand.cs
- UnaryQueryOperator.cs
- WebConfigurationHost.cs
- ArcSegment.cs
- TableParagraph.cs
- TextEditorTables.cs
- DataBinder.cs
- FontFamilyConverter.cs
- NumberFunctions.cs
- __FastResourceComparer.cs
- InstanceDataCollection.cs
- FileInfo.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- TraceContextRecord.cs
- validationstate.cs
- FunctionMappingTranslator.cs
- SqlVisitor.cs
- MimeMapping.cs
- DataGridItemAttachedStorage.cs
- ListItemCollection.cs
- HttpCapabilitiesSectionHandler.cs
- EditableTreeList.cs
- SuppressMessageAttribute.cs
- CurrencyManager.cs
- ListViewCancelEventArgs.cs
- StateElementCollection.cs
- VirtualizedCellInfoCollection.cs
- CodeExporter.cs
- FeatureSupport.cs
- HtmlElementEventArgs.cs
- ByteStack.cs
- StrictAndMessageFilter.cs
- X509CertificateTokenFactoryCredential.cs
- HtmlHead.cs
- IpcPort.cs
- HeaderUtility.cs
- Hyperlink.cs
- DataControlPagerLinkButton.cs
- TransformedBitmap.cs
- TraceSection.cs
- PasswordRecovery.cs
- TextContainer.cs
- HtmlContainerControl.cs
- MembershipPasswordException.cs
- GeneralTransform.cs
- DataShape.cs
- MemberCollection.cs
- FormViewUpdatedEventArgs.cs
- DesignerListAdapter.cs
- PassportAuthenticationModule.cs
- SystemIPv6InterfaceProperties.cs
- PixelShader.cs