Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / FolderLevelBuildProvider.cs / 1305376 / FolderLevelBuildProvider.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System; using System.Configuration; using System.Globalization; using System.Web.Compilation; using System.Web.Util; public sealed class FolderLevelBuildProvider : ConfigurationElement { private static ConfigurationPropertyCollection _properties; private static readonly ConfigurationProperty _propName = new ConfigurationProperty("name", 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 Type _type; // AppliesTo value from the FolderLevelBuildProviderAppliesToAttribute private FolderLevelBuildProviderAppliesTo _appliesToInternal; static FolderLevelBuildProvider() { _properties = new ConfigurationPropertyCollection(); _properties.Add(_propName); _properties.Add(_propType); } public FolderLevelBuildProvider(String name, String type) : this() { Name = name; Type = type; } internal FolderLevelBuildProvider() { } 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) { FolderLevelBuildProvider o = provider as FolderLevelBuildProvider; return (o != null && StringUtil.EqualsIgnoreCase(Name, o.Name) && Type == o.Type); } public override int GetHashCode() { return HashCodeCombiner.CombineHashCodes(Name.ToLower(CultureInfo.InvariantCulture).GetHashCode(), Type.GetHashCode()); } [ConfigurationProperty("name", IsRequired = true, IsKey = true, DefaultValue = "")] [StringValidator(MinLength = 1)] public string Name { get { return (string)base[_propName]; } set { base[_propName] = 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 FolderLevelBuildProviderAppliesTo AppliesToInternal { get { if (_appliesToInternal != 0) return _appliesToInternal; // Check whether the control builder's class exposes an AppliesTo attribute object[] attrs = TypeInternal.GetCustomAttributes( typeof(FolderLevelBuildProviderAppliesToAttribute), /*inherit*/ true); if ((attrs != null) && (attrs.Length > 0)) { Debug.Assert(attrs[0] is FolderLevelBuildProviderAppliesToAttribute); _appliesToInternal = ((FolderLevelBuildProviderAppliesToAttribute)attrs[0]).AppliesTo; } else { // Default to applying to None _appliesToInternal = FolderLevelBuildProviderAppliesTo.None; } return _appliesToInternal; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System; using System.Configuration; using System.Globalization; using System.Web.Compilation; using System.Web.Util; public sealed class FolderLevelBuildProvider : ConfigurationElement { private static ConfigurationPropertyCollection _properties; private static readonly ConfigurationProperty _propName = new ConfigurationProperty("name", 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 Type _type; // AppliesTo value from the FolderLevelBuildProviderAppliesToAttribute private FolderLevelBuildProviderAppliesTo _appliesToInternal; static FolderLevelBuildProvider() { _properties = new ConfigurationPropertyCollection(); _properties.Add(_propName); _properties.Add(_propType); } public FolderLevelBuildProvider(String name, String type) : this() { Name = name; Type = type; } internal FolderLevelBuildProvider() { } 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) { FolderLevelBuildProvider o = provider as FolderLevelBuildProvider; return (o != null && StringUtil.EqualsIgnoreCase(Name, o.Name) && Type == o.Type); } public override int GetHashCode() { return HashCodeCombiner.CombineHashCodes(Name.ToLower(CultureInfo.InvariantCulture).GetHashCode(), Type.GetHashCode()); } [ConfigurationProperty("name", IsRequired = true, IsKey = true, DefaultValue = "")] [StringValidator(MinLength = 1)] public string Name { get { return (string)base[_propName]; } set { base[_propName] = 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 FolderLevelBuildProviderAppliesTo AppliesToInternal { get { if (_appliesToInternal != 0) return _appliesToInternal; // Check whether the control builder's class exposes an AppliesTo attribute object[] attrs = TypeInternal.GetCustomAttributes( typeof(FolderLevelBuildProviderAppliesToAttribute), /*inherit*/ true); if ((attrs != null) && (attrs.Length > 0)) { Debug.Assert(attrs[0] is FolderLevelBuildProviderAppliesToAttribute); _appliesToInternal = ((FolderLevelBuildProviderAppliesToAttribute)attrs[0]).AppliesTo; } else { // Default to applying to None _appliesToInternal = FolderLevelBuildProviderAppliesTo.None; } return _appliesToInternal; } } } } // 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
- WebScriptClientGenerator.cs
- HtmlWindowCollection.cs
- ASCIIEncoding.cs
- BaseValidator.cs
- BaseCAMarshaler.cs
- TransferRequestHandler.cs
- NullExtension.cs
- DesignerAutoFormatStyle.cs
- InvalidPropValue.cs
- SpellerInterop.cs
- FontSizeConverter.cs
- KeyboardNavigation.cs
- PeerTransportSecuritySettings.cs
- ReliabilityContractAttribute.cs
- ChannelManagerHelpers.cs
- VSWCFServiceContractGenerator.cs
- WeakReferenceKey.cs
- ToolStripDropDownClosingEventArgs.cs
- SchemaDeclBase.cs
- securestring.cs
- ProjectedSlot.cs
- _BaseOverlappedAsyncResult.cs
- DummyDataSource.cs
- RangeValuePattern.cs
- DialogResultConverter.cs
- ContentPosition.cs
- SkewTransform.cs
- FormsIdentity.cs
- DataBoundControlAdapter.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- EncryptedKeyHashIdentifierClause.cs
- SponsorHelper.cs
- Trace.cs
- SpeakCompletedEventArgs.cs
- PropertyTabAttribute.cs
- SmiTypedGetterSetter.cs
- PenThreadWorker.cs
- RelationshipConstraintValidator.cs
- _ConnectStream.cs
- DateTimeUtil.cs
- WindowsListViewSubItem.cs
- WebPartCancelEventArgs.cs
- BitmapMetadata.cs
- ResourceIDHelper.cs
- DataGridState.cs
- NeedSkipTokenVisitor.cs
- MsmqHostedTransportManager.cs
- Control.cs
- LayoutUtils.cs
- ListViewItem.cs
- PenLineJoinValidation.cs
- ResourceReferenceExpressionConverter.cs
- RadioButtonPopupAdapter.cs
- ConnectionProviderAttribute.cs
- NaturalLanguageHyphenator.cs
- WorkflowViewService.cs
- ClientConfigurationHost.cs
- TraceUtility.cs
- DotExpr.cs
- CompareValidator.cs
- FormatControl.cs
- ObjectSecurityT.cs
- EventLogPropertySelector.cs
- ExpressionBuilder.cs
- OpenTypeCommon.cs
- FixedTextPointer.cs
- AssociationSetMetadata.cs
- ScrollProviderWrapper.cs
- ClipboardProcessor.cs
- GeometryCombineModeValidation.cs
- CheckBoxAutomationPeer.cs
- EntityDataSourceDesigner.cs
- RNGCryptoServiceProvider.cs
- ProvidersHelper.cs
- BamlRecordReader.cs
- Stacktrace.cs
- InkCanvas.cs
- PrintDialogException.cs
- DesignerVerbCollection.cs
- And.cs
- DataControlFieldHeaderCell.cs
- CodeBlockBuilder.cs
- ContentType.cs
- SourceChangedEventArgs.cs
- Regex.cs
- DependencySource.cs
- EmptyEnumerator.cs
- ColumnTypeConverter.cs
- TypedElement.cs
- ScaleTransform3D.cs
- PropertyEntry.cs
- ApplicationBuildProvider.cs
- ListItem.cs
- Rect.cs
- DBDataPermissionAttribute.cs
- SvcMapFileLoader.cs
- AnchoredBlock.cs
- DirectionalLight.cs
- InstallHelper.cs
- DriveInfo.cs