Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / Serialization / Configuration / XmlSerializerSection.cs / 2 / 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
- ConfigurationStrings.cs
- MarginsConverter.cs
- Rotation3DAnimation.cs
- dsa.cs
- ProcessModelSection.cs
- QilUnary.cs
- TypeNameConverter.cs
- UserPersonalizationStateInfo.cs
- AttributeEmitter.cs
- MSAAWinEventWrap.cs
- CodeTypeParameter.cs
- MemberRelationshipService.cs
- OleDbError.cs
- Matrix.cs
- Site.cs
- errorpatternmatcher.cs
- StateRuntime.cs
- StateRuntime.cs
- StringAttributeCollection.cs
- relpropertyhelper.cs
- HighlightVisual.cs
- StoreItemCollection.cs
- Compiler.cs
- DropShadowBitmapEffect.cs
- Grid.cs
- GenerateHelper.cs
- OpenTypeLayoutCache.cs
- PropertyDescriptor.cs
- CardSpaceSelector.cs
- WindowHideOrCloseTracker.cs
- ToolStripPanelCell.cs
- RegexCaptureCollection.cs
- ColumnResizeAdorner.cs
- Button.cs
- ConfigErrorGlyph.cs
- PackageRelationship.cs
- CanonicalXml.cs
- DesignerDataSourceView.cs
- DataObject.cs
- ResourceExpressionBuilder.cs
- QueryOutputWriter.cs
- FormViewRow.cs
- WhitespaceRule.cs
- Vector3DCollectionValueSerializer.cs
- ParameterModifier.cs
- OLEDB_Util.cs
- SchemaNames.cs
- NameNode.cs
- DataGridViewCheckBoxColumn.cs
- DocumentPageViewAutomationPeer.cs
- SecurityChannel.cs
- TreeNodeMouseHoverEvent.cs
- ColumnBinding.cs
- DataComponentMethodGenerator.cs
- InternalsVisibleToAttribute.cs
- AssemblyNameUtility.cs
- DataTableMapping.cs
- WebPartAuthorizationEventArgs.cs
- WebPartConnectionsDisconnectVerb.cs
- FixedSOMLineCollection.cs
- PersonalizationStateInfoCollection.cs
- SchemaType.cs
- OdbcConnectionOpen.cs
- RowUpdatingEventArgs.cs
- EncryptedKey.cs
- StateChangeEvent.cs
- CorrelationKeyCalculator.cs
- SizeValueSerializer.cs
- UriParserTemplates.cs
- InputBindingCollection.cs
- VariableQuery.cs
- SR.cs
- DBParameter.cs
- DataGridView.cs
- _LazyAsyncResult.cs
- TemplateBindingExpressionConverter.cs
- ReferencedAssembly.cs
- ConfigurationElementCollection.cs
- DataGridState.cs
- DataSourceXmlAttributeAttribute.cs
- DbDataSourceEnumerator.cs
- UnaryExpression.cs
- ParallelTimeline.cs
- DataGridViewCheckBoxColumn.cs
- HwndSourceParameters.cs
- basecomparevalidator.cs
- XmlHierarchicalEnumerable.cs
- DesignerDataStoredProcedure.cs
- WizardStepBase.cs
- HandlerWithFactory.cs
- CoTaskMemSafeHandle.cs
- MarginsConverter.cs
- BindingValueChangedEventArgs.cs
- InsufficientMemoryException.cs
- HotSpot.cs
- XmlParserContext.cs
- ValidationEventArgs.cs
- HighlightComponent.cs
- PixelFormats.cs
- Mouse.cs