Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ElementUtil.cs
- EdmItemCollection.cs
- QueryOutputWriter.cs
- BamlTreeNode.cs
- XpsSerializationException.cs
- GeneratedCodeAttribute.cs
- TaskFormBase.cs
- NamespaceMapping.cs
- XamlPathDataSerializer.cs
- FormViewInsertedEventArgs.cs
- EastAsianLunisolarCalendar.cs
- WebSysDisplayNameAttribute.cs
- ThreadPool.cs
- XmlDictionaryReader.cs
- ProtocolsSection.cs
- GetIndexBinder.cs
- XmlUtil.cs
- ToggleProviderWrapper.cs
- XhtmlCssHandler.cs
- InvalidateEvent.cs
- UpdateTracker.cs
- BitStack.cs
- AssemblyInfo.cs
- XmlDocument.cs
- SqlProcedureAttribute.cs
- DocumentSequence.cs
- Button.cs
- BrowserPolicyValidator.cs
- DataPagerFieldCollection.cs
- Graphics.cs
- RunClient.cs
- AsymmetricKeyExchangeFormatter.cs
- MailDefinition.cs
- ContractMethodInfo.cs
- SqlTrackingQuery.cs
- ParallelTimeline.cs
- ServiceDocument.cs
- WindowsFormsSectionHandler.cs
- EventRecordWrittenEventArgs.cs
- DispatchWrapper.cs
- GroupBoxRenderer.cs
- FormsAuthenticationTicket.cs
- CompositeCollection.cs
- StylusPointPropertyId.cs
- ArraySet.cs
- Matrix3DConverter.cs
- Select.cs
- SqlMethodCallConverter.cs
- odbcmetadatacolumnnames.cs
- ADMembershipUser.cs
- NativeMethods.cs
- ISFClipboardData.cs
- Bidi.cs
- WeakKeyDictionary.cs
- IsolatedStoragePermission.cs
- GradientStopCollection.cs
- MimeBasePart.cs
- CircleHotSpot.cs
- Stylesheet.cs
- DataGridViewCellEventArgs.cs
- ChangeConflicts.cs
- ColumnMap.cs
- WebBrowsableAttribute.cs
- ForwardPositionQuery.cs
- ButtonFlatAdapter.cs
- FormViewDeleteEventArgs.cs
- Asn1IntegerConverter.cs
- Size.cs
- HtmlTableRow.cs
- RectIndependentAnimationStorage.cs
- InfiniteIntConverter.cs
- PanelStyle.cs
- SerializableReadOnlyDictionary.cs
- NonVisualControlAttribute.cs
- XmlnsDictionary.cs
- IncrementalCompileAnalyzer.cs
- CommonProperties.cs
- Comparer.cs
- MarkupCompilePass1.cs
- KeysConverter.cs
- DataGridViewCellCancelEventArgs.cs
- SecurityCriticalDataForSet.cs
- GridViewColumn.cs
- Zone.cs
- BinaryFormatterWriter.cs
- StackOverflowException.cs
- HashCryptoHandle.cs
- TypeConverterAttribute.cs
- PLINQETWProvider.cs
- CodeAttributeDeclaration.cs
- ObjectNavigationPropertyMapping.cs
- VariantWrapper.cs
- SortFieldComparer.cs
- Action.cs
- TimeSpanStorage.cs
- ProtocolViolationException.cs
- HtmlTableRow.cs
- CriticalHandle.cs
- NumberFormatInfo.cs
- JavaScriptSerializer.cs