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
- DbInsertCommandTree.cs
- StreamWriter.cs
- MemberMemberBinding.cs
- DataServiceClientException.cs
- ImmutableObjectAttribute.cs
- LongAverageAggregationOperator.cs
- MenuCommands.cs
- HostProtectionException.cs
- MenuAdapter.cs
- XPathNavigatorKeyComparer.cs
- CompensatableSequenceActivity.cs
- SeverityFilter.cs
- PageSettings.cs
- TargetFrameworkUtil.cs
- ClientApiGenerator.cs
- BackStopAuthenticationModule.cs
- Span.cs
- SQlBooleanStorage.cs
- ListViewContainer.cs
- LassoHelper.cs
- DataServiceExpressionVisitor.cs
- IdentifierService.cs
- PropertyChange.cs
- GridViewUpdateEventArgs.cs
- JournalEntry.cs
- UIElement.cs
- IconBitmapDecoder.cs
- TileBrush.cs
- ClientConfigurationSystem.cs
- SchemaImporterExtensionElement.cs
- FormsAuthenticationTicket.cs
- SubpageParagraph.cs
- MediaEntryAttribute.cs
- DataGridLinkButton.cs
- WindowInteropHelper.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- PagerSettings.cs
- ReceiveMessageContent.cs
- TransformationRules.cs
- ProvideValueServiceProvider.cs
- Listen.cs
- FullTrustAssembliesSection.cs
- ListView.cs
- HtmlTableCellCollection.cs
- Delay.cs
- NodeFunctions.cs
- SelectionWordBreaker.cs
- VirtualPathUtility.cs
- TransportConfigurationTypeElementCollection.cs
- DictionaryChange.cs
- DataGridTemplateColumn.cs
- PixelFormatConverter.cs
- ManagedIStream.cs
- DBDataPermissionAttribute.cs
- SignatureHelper.cs
- ImageSource.cs
- SingleAnimationBase.cs
- connectionpool.cs
- StringWriter.cs
- CFStream.cs
- ToolStripDropDownClosedEventArgs.cs
- CodeNamespaceImport.cs
- TimeStampChecker.cs
- SchemaMerger.cs
- EdmMember.cs
- AutomationPattern.cs
- IPPacketInformation.cs
- BypassElementCollection.cs
- BooleanKeyFrameCollection.cs
- DefaultAsyncDataDispatcher.cs
- SplineKeyFrames.cs
- SchemaEntity.cs
- WindowsEditBox.cs
- ExpressionBinding.cs
- XmlILIndex.cs
- DescendantBaseQuery.cs
- DelayedRegex.cs
- WebProxyScriptElement.cs
- CommentAction.cs
- TextFormatterContext.cs
- SizeChangedInfo.cs
- SrgsRule.cs
- PersonalizablePropertyEntry.cs
- XmlCollation.cs
- MenuItemCollectionEditor.cs
- FileSystemWatcher.cs
- DataGridToolTip.cs
- wgx_sdk_version.cs
- RegexStringValidator.cs
- SettingsSavedEventArgs.cs
- CookieProtection.cs
- ListenerTraceUtility.cs
- ObjectDataSourceMethodEventArgs.cs
- DataGridRelationshipRow.cs
- ControlPaint.cs
- StringKeyFrameCollection.cs
- ViewStateModeByIdAttribute.cs
- AuthorizationSection.cs
- EventManager.cs
- TextParagraph.cs