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
- HtmlElementCollection.cs
- XmlBinaryReader.cs
- ReflectEventDescriptor.cs
- RegexInterpreter.cs
- MobileControlsSectionHelper.cs
- CaseStatementSlot.cs
- AutomationPatternInfo.cs
- SystemParameters.cs
- PcmConverter.cs
- PolicyLevel.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- SafeRightsManagementSessionHandle.cs
- _ConnectStream.cs
- Intellisense.cs
- ColumnResult.cs
- DbDataSourceEnumerator.cs
- FileDialog.cs
- PreviewPrintController.cs
- FlowLayoutSettings.cs
- RegularExpressionValidator.cs
- ReaderContextStackData.cs
- CollectionChangeEventArgs.cs
- TreeNode.cs
- HealthMonitoringSectionHelper.cs
- formatter.cs
- NativeMethods.cs
- TextBoxBase.cs
- ListViewItem.cs
- Sentence.cs
- SoapWriter.cs
- Translator.cs
- _UriSyntax.cs
- ZipIOModeEnforcingStream.cs
- Guid.cs
- AbstractExpressions.cs
- ResponseBodyWriter.cs
- SqlNotificationRequest.cs
- AudioStateChangedEventArgs.cs
- UnionExpr.cs
- RenderDataDrawingContext.cs
- Codec.cs
- XPathNodeList.cs
- ListViewItemMouseHoverEvent.cs
- ConsoleTraceListener.cs
- EditingMode.cs
- Base64Encoder.cs
- ViewManager.cs
- CodeSnippetExpression.cs
- WindowsRichEditRange.cs
- XmlSchemaFacet.cs
- TextTreeTextBlock.cs
- MDIClient.cs
- EventArgs.cs
- PersonalizablePropertyEntry.cs
- AbandonedMutexException.cs
- WindowsFormsSynchronizationContext.cs
- TextOutput.cs
- DecoderNLS.cs
- ReferencedType.cs
- MiniParameterInfo.cs
- SqlReferenceCollection.cs
- OutputScopeManager.cs
- ExpressionBinding.cs
- JapaneseCalendar.cs
- UserThread.cs
- Flowchart.cs
- TextEndOfLine.cs
- WorkflowDesignerMessageFilter.cs
- SelectionRange.cs
- SecurityTimestamp.cs
- RectIndependentAnimationStorage.cs
- Storyboard.cs
- XMLDiffLoader.cs
- HMAC.cs
- ThreadInterruptedException.cs
- AsyncOperation.cs
- HandleExceptionArgs.cs
- TickBar.cs
- WebBrowser.cs
- loginstatus.cs
- InlineCollection.cs
- NumericUpDownAccelerationCollection.cs
- OracleRowUpdatedEventArgs.cs
- FontWeights.cs
- NCryptSafeHandles.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- ReflectPropertyDescriptor.cs
- PtsContext.cs
- HideDisabledControlAdapter.cs
- SQLCharsStorage.cs
- TextServicesProperty.cs
- ScriptComponentDescriptor.cs
- BypassElementCollection.cs
- XmlCodeExporter.cs
- ReflectEventDescriptor.cs
- StatusCommandUI.cs
- DeploymentSection.cs
- XamlParser.cs
- IndicCharClassifier.cs
- DataObjectEventArgs.cs