Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Configuration / BuildProvider.cs / 2 / 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;
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
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);
private Type _type;
// AppliesTo value from the BuildProviderAppliesToAttribute
private BuildProviderAppliesTo _appliesToInternal;
static BuildProvider() {
_properties = new ConfigurationPropertyCollection();
_properties.Add(_propExtension);
_properties.Add(_propType);
}
public BuildProvider(String extension, String type)
: this() {
Extension = extension;
Type = type;
}
internal BuildProvider() {
}
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 Type TypeInternal {
get {
if (_type == null) {
lock (this) {
if (_type == null) {
_type = CompilationUtil.LoadTypeWithChecks(Type, typeof(System.Web.Compilation.BuildProvider), null, this, "type");
}
}
}
return _type;
}
}
internal BuildProviderAppliesTo AppliesToInternal {
get {
if (_appliesToInternal != 0)
return _appliesToInternal;
// Check whether the control builder's class exposes an AppliesTo attribute
object[] attrs = TypeInternal.GetCustomAttributes(
typeof(BuildProviderAppliesToAttribute), /*inherit*/ true);
if ((attrs != null) && (attrs.Length > 0)) {
Debug.Assert(attrs[0] is BuildProviderAppliesToAttribute);
_appliesToInternal = ((BuildProviderAppliesToAttribute)attrs[0]).AppliesTo;
}
else {
// Default to applying to All
_appliesToInternal = BuildProviderAppliesTo.All;
}
return _appliesToInternal;
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SizeConverter.cs
- XmlSiteMapProvider.cs
- SupportingTokenListenerFactory.cs
- GrabHandleGlyph.cs
- PrintPreviewDialog.cs
- MimeFormatter.cs
- AutoGeneratedField.cs
- AttributeEmitter.cs
- SqlMetaData.cs
- CopyNodeSetAction.cs
- _SpnDictionary.cs
- MessageEventSubscriptionService.cs
- ListViewGroupCollectionEditor.cs
- documentation.cs
- ActivityCodeDomReferenceService.cs
- ReverseInheritProperty.cs
- BuildProvidersCompiler.cs
- RuntimeConfigurationRecord.cs
- CookieProtection.cs
- Column.cs
- Intellisense.cs
- PageParserFilter.cs
- AdornerHitTestResult.cs
- ItemContainerProviderWrapper.cs
- SerialReceived.cs
- LogicalExpr.cs
- EdmComplexTypeAttribute.cs
- DataColumnCollection.cs
- UriScheme.cs
- PageThemeBuildProvider.cs
- EdmTypeAttribute.cs
- UserControlParser.cs
- AssertHelper.cs
- FontStretches.cs
- DiagnosticsConfiguration.cs
- RecognizedWordUnit.cs
- AdapterUtil.cs
- UnsafeNativeMethodsPenimc.cs
- DbgUtil.cs
- DataGridViewImageCell.cs
- KoreanCalendar.cs
- RemotingAttributes.cs
- SQLUtility.cs
- XDeferredAxisSource.cs
- BitStack.cs
- PriorityItem.cs
- DnsEndPoint.cs
- TextContainerHelper.cs
- CqlIdentifiers.cs
- LabelEditEvent.cs
- XamlFigureLengthSerializer.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- InProcStateClientManager.cs
- SchemaCollectionCompiler.cs
- ExceptionUtil.cs
- ArrangedElementCollection.cs
- UserControlDesigner.cs
- DataListItemEventArgs.cs
- RolePrincipal.cs
- CodeDomConfigurationHandler.cs
- PerformanceCounters.cs
- TemplateModeChangedEventArgs.cs
- ZipIOModeEnforcingStream.cs
- ResourceSetExpression.cs
- LogLogRecordEnumerator.cs
- InvariantComparer.cs
- CustomWebEventKey.cs
- CompoundFileDeflateTransform.cs
- SchemaMerger.cs
- Renderer.cs
- SymbolDocumentGenerator.cs
- GB18030Encoding.cs
- _RequestCacheProtocol.cs
- DbConnectionInternal.cs
- Label.cs
- LiteralLink.cs
- PerfCounters.cs
- TypeValidationEventArgs.cs
- TextSpan.cs
- AdCreatedEventArgs.cs
- BooleanFunctions.cs
- XmlQueryType.cs
- NonVisualControlAttribute.cs
- KeyInfo.cs
- WindowsToolbar.cs
- ResourcePart.cs
- DesignerCalendarAdapter.cs
- Message.cs
- ImageAutomationPeer.cs
- InputLanguageCollection.cs
- GroupBoxRenderer.cs
- RenderCapability.cs
- UnknownBitmapDecoder.cs
- DbModificationCommandTree.cs
- CodeDefaultValueExpression.cs
- XMLSchema.cs
- DataGridViewAutoSizeModeEventArgs.cs
- SelectorAutomationPeer.cs
- AtlasWeb.Designer.cs
- PersianCalendar.cs