Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / BuildProvider.cs / 1305376 / BuildProvider.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Configuration {
using System;
using System.Xml;
using System.Configuration;
using System.Collections.Specialized;
using System.Collections;
using System.Globalization;
using System.IO;
using System.Text;
using System.Web.Compilation;
using System.Reflection;
using System.Web.Hosting;
using System.Web.UI;
using System.CodeDom.Compiler;
using System.Web.Util;
using System.ComponentModel;
using System.Security.Permissions;
public sealed class BuildProvider : ConfigurationElement {
private static ConfigurationPropertyCollection _properties;
private static readonly ConfigurationProperty _propExtension =
new ConfigurationProperty("extension",
typeof(string),
null,
null,
StdValidatorsAndConverters.NonEmptyStringValidator,
ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsKey);
private static readonly ConfigurationProperty _propType =
new ConfigurationProperty("type",
typeof(string),
null,
null,
StdValidatorsAndConverters.NonEmptyStringValidator,
ConfigurationPropertyOptions.IsRequired | ConfigurationPropertyOptions.IsTypeStringTransformationRequired);
private readonly BuildProviderInfo _info;
static BuildProvider() {
_properties = new ConfigurationPropertyCollection();
_properties.Add(_propExtension);
_properties.Add(_propType);
}
public BuildProvider(String extension, String type)
: this() {
Extension = extension;
Type = type;
}
internal BuildProvider() {
_info = new ConfigurationBuildProviderInfo(this);
}
protected override ConfigurationPropertyCollection Properties {
get {
return _properties;
}
}
// this override is required because AppliesTo may be in any order in the
// property string but it still and the default equals operator would consider
// them different depending on order in the persisted string.
public override bool Equals(object provider) {
BuildProvider o = provider as BuildProvider;
return (o != null && StringUtil.EqualsIgnoreCase(Extension, o.Extension) && Type == o.Type);
}
public override int GetHashCode() {
return HashCodeCombiner.CombineHashCodes(Extension.ToLower(CultureInfo.InvariantCulture).GetHashCode(),
Type.GetHashCode());
}
[ConfigurationProperty("extension", IsRequired = true, IsKey = true, DefaultValue = "")]
[StringValidator(MinLength = 1)]
public string Extension {
get {
return (string)base[_propExtension];
}
set {
base[_propExtension] = value;
}
}
[ConfigurationProperty("type", IsRequired = true, DefaultValue = "")]
[StringValidator(MinLength = 1)]
public string Type {
get {
return (string)base[_propType];
}
set {
base[_propType] = value;
}
}
internal BuildProviderInfo BuildProviderInfo {
get {
Debug.Assert(_info != null);
return _info;
}
}
private class ConfigurationBuildProviderInfo : BuildProviderInfo {
private readonly BuildProvider _buildProvider;
object _lock = new object();
private Type _type;
public ConfigurationBuildProviderInfo(BuildProvider buildProvider) {
Debug.Assert(buildProvider != null);
_buildProvider = buildProvider;
}
internal override Type Type {
get {
if (_type == null) {
lock (_lock) {
if (_type == null) {
_type = CompilationUtil.LoadTypeWithChecks(_buildProvider.Type, typeof(System.Web.Compilation.BuildProvider), null, _buildProvider, "type");
}
}
}
return _type;
}
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- InfiniteTimeSpanConverter.cs
- OpCopier.cs
- RequestStatusBarUpdateEventArgs.cs
- TdsValueSetter.cs
- PageEventArgs.cs
- DesignerSerializerAttribute.cs
- TdsParserHelperClasses.cs
- StylusShape.cs
- SystemSounds.cs
- ToolBarButtonClickEvent.cs
- DbProviderServices.cs
- AppDomainUnloadedException.cs
- OleAutBinder.cs
- LassoHelper.cs
- RectangleHotSpot.cs
- Relationship.cs
- ActivationServices.cs
- QueryStringParameter.cs
- SqlDataSourceStatusEventArgs.cs
- ThreadInterruptedException.cs
- XhtmlTextWriter.cs
- FunctionQuery.cs
- Properties.cs
- namescope.cs
- XmlTextAttribute.cs
- TreeViewImageKeyConverter.cs
- SiteMapNodeItemEventArgs.cs
- BitmapFrame.cs
- SharedConnectionInfo.cs
- ConfigurationLoaderException.cs
- ProgressBar.cs
- TypefaceMetricsCache.cs
- FormViewRow.cs
- StylusPlugInCollection.cs
- HttpRuntime.cs
- WebCategoryAttribute.cs
- Signature.cs
- OleDbReferenceCollection.cs
- LinqDataSourceHelper.cs
- XpsViewerException.cs
- SendingRequestEventArgs.cs
- XmlSchemaSet.cs
- XmlUrlEditor.cs
- __TransparentProxy.cs
- TaiwanLunisolarCalendar.cs
- HttpRequestContext.cs
- DataObject.cs
- RemoteWebConfigurationHostStream.cs
- RIPEMD160.cs
- LogPolicy.cs
- DataControlCommands.cs
- JournalEntryStack.cs
- MetaModel.cs
- MachinePropertyVariants.cs
- SQLBytes.cs
- TypeLibConverter.cs
- SwitchCase.cs
- ThicknessConverter.cs
- NullRuntimeConfig.cs
- basecomparevalidator.cs
- SocketAddress.cs
- FormatterServicesNoSerializableCheck.cs
- ArraySegment.cs
- DirectoryInfo.cs
- GlyphInfoList.cs
- SessionIDManager.cs
- Path.cs
- FontDriver.cs
- ClientConvert.cs
- GuidelineSet.cs
- CompModSwitches.cs
- XPathException.cs
- CultureInfoConverter.cs
- ErrorTableItemStyle.cs
- WebPartAddingEventArgs.cs
- Sql8ConformanceChecker.cs
- Queue.cs
- SqlUserDefinedAggregateAttribute.cs
- HtmlTable.cs
- SettingsProviderCollection.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- SqlNotificationEventArgs.cs
- WebPartTransformerAttribute.cs
- XmlObjectSerializerReadContextComplex.cs
- DisableDpiAwarenessAttribute.cs
- ResourceDefaultValueAttribute.cs
- BackStopAuthenticationModule.cs
- MenuRenderer.cs
- ProxyAttribute.cs
- ResXResourceReader.cs
- SQLDecimalStorage.cs
- ScriptMethodAttribute.cs
- ExpressionEvaluator.cs
- QueueSurrogate.cs
- OdbcInfoMessageEvent.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- AutomationPropertyInfo.cs
- NetCodeGroup.cs
- ThreadExceptionEvent.cs
- PathGradientBrush.cs