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
- FeatureManager.cs
- PkcsUtils.cs
- SystemWebCachingSectionGroup.cs
- RSAPKCS1SignatureDeformatter.cs
- SelectionWordBreaker.cs
- Label.cs
- UrlAuthorizationModule.cs
- SHA256.cs
- ToolboxComponentsCreatedEventArgs.cs
- BroadcastEventHelper.cs
- SimpleExpression.cs
- ListViewGroupItemCollection.cs
- unsafenativemethodsother.cs
- MetaModel.cs
- SqlConnectionHelper.cs
- ServiceOperationParameter.cs
- AnnotationService.cs
- SingleAnimation.cs
- ThemeDictionaryExtension.cs
- WpfWebRequestHelper.cs
- Internal.cs
- XmlSchemaNotation.cs
- AsyncPostBackErrorEventArgs.cs
- WindowsListViewScroll.cs
- ProcessStartInfo.cs
- KnownTypesProvider.cs
- SecurityState.cs
- AxisAngleRotation3D.cs
- SingleQueryOperator.cs
- SerializationException.cs
- SinglePageViewer.cs
- LogExtentCollection.cs
- XmlSchemaDatatype.cs
- ReaderContextStackData.cs
- InputBuffer.cs
- ContextInformation.cs
- DictionarySectionHandler.cs
- DataControlFieldCollection.cs
- ClickablePoint.cs
- Pens.cs
- PropertyTab.cs
- CultureInfo.cs
- HMACSHA256.cs
- ProcessThread.cs
- VisualStyleElement.cs
- EntityDataSourceView.cs
- SqlDataSourceFilteringEventArgs.cs
- AnonymousIdentificationModule.cs
- RecognitionResult.cs
- UpdatePanelTriggerCollection.cs
- ModelUIElement3D.cs
- Screen.cs
- ImageCodecInfoPrivate.cs
- webeventbuffer.cs
- FeatureAttribute.cs
- LocalizabilityAttribute.cs
- BamlLocalizableResource.cs
- ScrollItemPattern.cs
- DataTableClearEvent.cs
- EditorPart.cs
- XmlAutoDetectWriter.cs
- SiteMap.cs
- ClientBuildManagerCallback.cs
- LineBreak.cs
- PatternMatcher.cs
- FieldBuilder.cs
- SimpleExpression.cs
- ToolStripHighContrastRenderer.cs
- PrinterUnitConvert.cs
- SpotLight.cs
- EdmComplexTypeAttribute.cs
- DesignTimeXamlWriter.cs
- AccessorTable.cs
- Journaling.cs
- ObservableCollectionDefaultValueFactory.cs
- SrgsElementList.cs
- GatewayDefinition.cs
- UidManager.cs
- Rectangle.cs
- securitymgrsite.cs
- PreviewPrintController.cs
- CacheHelper.cs
- Utils.cs
- SoundPlayerAction.cs
- StrokeCollectionDefaultValueFactory.cs
- StrongNameIdentityPermission.cs
- ObjectParameterCollection.cs
- PersonalizableTypeEntry.cs
- ImmutableAssemblyCacheEntry.cs
- WeakKeyDictionary.cs
- OutOfProcStateClientManager.cs
- TextLineBreak.cs
- TypographyProperties.cs
- COMException.cs
- filewebresponse.cs
- DrawingServices.cs
- ClientConfigurationSystem.cs
- PersianCalendar.cs
- SystemParameters.cs
- TCPListener.cs