Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / UI / ParseChildrenAsPropertiesAttribute.cs / 1 / ParseChildrenAsPropertiesAttribute.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System; using System.Collections; using System.ComponentModel; using System.Security.Permissions; using System.Web.Util; ////// Define the metadata attribute that controls use to mark the fact /// that their children are in fact properties. /// Furthermore, if a string is passed in the constructor, it specifies /// the name of the defaultproperty. /// [AttributeUsage(AttributeTargets.Class)] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class ParseChildrenAttribute : Attribute { public static readonly ParseChildrenAttribute ParseAsChildren = new ParseChildrenAttribute(false, false); public static readonly ParseChildrenAttribute ParseAsProperties = new ParseChildrenAttribute(true, false); public static readonly ParseChildrenAttribute Default = ParseAsChildren; private bool _childrenAsProps; private string _defaultProperty; private Type _childControlType; private bool _allowChanges = true; ////// Needed to use named parameters (ASURT 78869) /// public ParseChildrenAttribute() : this(false, null) { } ////// public ParseChildrenAttribute(bool childrenAsProperties) : this(childrenAsProperties, null) { } public ParseChildrenAttribute(Type childControlType) : this(false, null) { if (childControlType == null) { throw new ArgumentNullException("childControlType"); } _childControlType = childControlType; } ////// Needed to create immutable static readonly instances of this attribute /// private ParseChildrenAttribute(bool childrenAsProperties, bool allowChanges) : this(childrenAsProperties, null) { _allowChanges = allowChanges; } ////// public ParseChildrenAttribute(bool childrenAsProperties, string defaultProperty) { _childrenAsProps = childrenAsProperties; if (_childrenAsProps == true) { _defaultProperty = defaultProperty; } } ////// public Type ChildControlType { get { if (_childControlType == null) { return typeof(System.Web.UI.Control); } return _childControlType; } } ///Indicates the allowed child control type. /// This property is read-only. ////// public bool ChildrenAsProperties { get { return _childrenAsProps; } set { if (_allowChanges == false) { throw new NotSupportedException(); } _childrenAsProps = value; } } ////// public string DefaultProperty { get { if (_defaultProperty == null) { return String.Empty; } return _defaultProperty; } set { if (_allowChanges == false) { throw new NotSupportedException(); } _defaultProperty = value; } } ////// /// public override int GetHashCode() { if (_childrenAsProps == false) { return HashCodeCombiner.CombineHashCodes(_childrenAsProps.GetHashCode(), _childControlType.GetHashCode()); } else { return HashCodeCombiner.CombineHashCodes(_childrenAsProps.GetHashCode(), DefaultProperty.GetHashCode()); } } ////// /// public override bool Equals(object obj) { if (obj == this) { return true; } ParseChildrenAttribute pca = obj as ParseChildrenAttribute; if (pca != null) { if (_childrenAsProps == false) { return pca.ChildrenAsProperties == false && pca._childControlType == _childControlType; } else { return pca.ChildrenAsProperties && (DefaultProperty.Equals(pca.DefaultProperty)); } } return false; } ////// /// public override bool IsDefaultAttribute() { return this.Equals(Default); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System; using System.Collections; using System.ComponentModel; using System.Security.Permissions; using System.Web.Util; ////// Define the metadata attribute that controls use to mark the fact /// that their children are in fact properties. /// Furthermore, if a string is passed in the constructor, it specifies /// the name of the defaultproperty. /// [AttributeUsage(AttributeTargets.Class)] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class ParseChildrenAttribute : Attribute { public static readonly ParseChildrenAttribute ParseAsChildren = new ParseChildrenAttribute(false, false); public static readonly ParseChildrenAttribute ParseAsProperties = new ParseChildrenAttribute(true, false); public static readonly ParseChildrenAttribute Default = ParseAsChildren; private bool _childrenAsProps; private string _defaultProperty; private Type _childControlType; private bool _allowChanges = true; ////// Needed to use named parameters (ASURT 78869) /// public ParseChildrenAttribute() : this(false, null) { } ////// public ParseChildrenAttribute(bool childrenAsProperties) : this(childrenAsProperties, null) { } public ParseChildrenAttribute(Type childControlType) : this(false, null) { if (childControlType == null) { throw new ArgumentNullException("childControlType"); } _childControlType = childControlType; } ////// Needed to create immutable static readonly instances of this attribute /// private ParseChildrenAttribute(bool childrenAsProperties, bool allowChanges) : this(childrenAsProperties, null) { _allowChanges = allowChanges; } ////// public ParseChildrenAttribute(bool childrenAsProperties, string defaultProperty) { _childrenAsProps = childrenAsProperties; if (_childrenAsProps == true) { _defaultProperty = defaultProperty; } } ////// public Type ChildControlType { get { if (_childControlType == null) { return typeof(System.Web.UI.Control); } return _childControlType; } } ///Indicates the allowed child control type. /// This property is read-only. ////// public bool ChildrenAsProperties { get { return _childrenAsProps; } set { if (_allowChanges == false) { throw new NotSupportedException(); } _childrenAsProps = value; } } ////// public string DefaultProperty { get { if (_defaultProperty == null) { return String.Empty; } return _defaultProperty; } set { if (_allowChanges == false) { throw new NotSupportedException(); } _defaultProperty = value; } } ////// /// public override int GetHashCode() { if (_childrenAsProps == false) { return HashCodeCombiner.CombineHashCodes(_childrenAsProps.GetHashCode(), _childControlType.GetHashCode()); } else { return HashCodeCombiner.CombineHashCodes(_childrenAsProps.GetHashCode(), DefaultProperty.GetHashCode()); } } ////// /// public override bool Equals(object obj) { if (obj == this) { return true; } ParseChildrenAttribute pca = obj as ParseChildrenAttribute; if (pca != null) { if (_childrenAsProps == false) { return pca.ChildrenAsProperties == false && pca._childControlType == _childControlType; } else { return pca.ChildrenAsProperties && (DefaultProperty.Equals(pca.DefaultProperty)); } } return false; } ////// /// public override bool IsDefaultAttribute() { return this.Equals(Default); } } } // 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
- ScriptHandlerFactory.cs
- Rect.cs
- EntityDesignerBuildProvider.cs
- DataObjectPastingEventArgs.cs
- ConnectionsZone.cs
- ReturnEventArgs.cs
- OSEnvironmentHelper.cs
- XmlElement.cs
- ListViewItemEventArgs.cs
- Selection.cs
- AspCompat.cs
- VirtualDirectoryMappingCollection.cs
- DictionaryBase.cs
- Inflater.cs
- MatrixCamera.cs
- Crc32.cs
- Pair.cs
- EDesignUtil.cs
- CapabilitiesSection.cs
- ISAPIRuntime.cs
- TakeOrSkipQueryOperator.cs
- Events.cs
- OutKeywords.cs
- FastEncoder.cs
- DefaultSerializationProviderAttribute.cs
- SystemIPGlobalProperties.cs
- TextBox.cs
- XmlCharCheckingWriter.cs
- TextParagraphCache.cs
- TransactionCache.cs
- OrderedDictionary.cs
- FixedDSBuilder.cs
- CalendarButton.cs
- ICollection.cs
- SqlDataSourceWizardForm.cs
- DurableInstanceContextProvider.cs
- ComplexPropertyEntry.cs
- LinearGradientBrush.cs
- SelectedCellsChangedEventArgs.cs
- RotateTransform3D.cs
- SafeCertificateStore.cs
- TextRunProperties.cs
- ColorDialog.cs
- StringComparer.cs
- OrElse.cs
- NodeFunctions.cs
- ObjectListCommandsPage.cs
- BooleanFacetDescriptionElement.cs
- CorruptingExceptionCommon.cs
- VectorValueSerializer.cs
- ImageAutomationPeer.cs
- ExpressionBuilderContext.cs
- BodyWriter.cs
- InputBuffer.cs
- OracleConnectionStringBuilder.cs
- SessionStateItemCollection.cs
- DataGridColumnStyleMappingNameEditor.cs
- RectValueSerializer.cs
- CollectionType.cs
- D3DImage.cs
- LocationUpdates.cs
- COM2TypeInfoProcessor.cs
- basecomparevalidator.cs
- MultiBindingExpression.cs
- WebPartTracker.cs
- OptimalTextSource.cs
- TextEditorContextMenu.cs
- TraceContext.cs
- VisualStateChangedEventArgs.cs
- SByteStorage.cs
- FileSystemEventArgs.cs
- Matrix3DStack.cs
- HttpModuleCollection.cs
- DLinqColumnProvider.cs
- KeyNotFoundException.cs
- DataGridColumnCollection.cs
- MultiSelector.cs
- UnauthorizedWebPart.cs
- CommentEmitter.cs
- HandleRef.cs
- InfoCardBaseException.cs
- CTreeGenerator.cs
- ToolBarPanel.cs
- Currency.cs
- Parsers.cs
- SettingsContext.cs
- VisualProxy.cs
- XmlAttributeHolder.cs
- Int32Rect.cs
- ExpressionNode.cs
- ObjectDataSourceWizardForm.cs
- DefaultBindingPropertyAttribute.cs
- TabControl.cs
- PolyLineSegment.cs
- Odbc32.cs
- Section.cs
- StoreAnnotationsMap.cs
- TypeConstant.cs
- UnauthorizedAccessException.cs
- TranslateTransform.cs