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
- TextRangeBase.cs
- HighContrastHelper.cs
- AssignDesigner.xaml.cs
- StateMachine.cs
- MetabaseReader.cs
- CodeCommentStatement.cs
- Mutex.cs
- TypeUtil.cs
- SatelliteContractVersionAttribute.cs
- ButtonFieldBase.cs
- ValidationRule.cs
- ConsumerConnectionPointCollection.cs
- OutputScopeManager.cs
- InvalidStoreProtectionKeyException.cs
- ClientData.cs
- CompilerInfo.cs
- EditingCommands.cs
- BuildProviderCollection.cs
- SpeakInfo.cs
- ViewRendering.cs
- ToolStripButton.cs
- GuidelineSet.cs
- IImplicitResourceProvider.cs
- IPipelineRuntime.cs
- Padding.cs
- Composition.cs
- RoleManagerEventArgs.cs
- RegexCharClass.cs
- SHA1Cng.cs
- WindowHideOrCloseTracker.cs
- AssertSection.cs
- ListenerAdapterBase.cs
- XmlDocument.cs
- AnchoredBlock.cs
- SettingsPropertyIsReadOnlyException.cs
- Command.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- HttpWriter.cs
- XamlHostingSectionGroup.cs
- TcpAppDomainProtocolHandler.cs
- OracleConnectionFactory.cs
- Bits.cs
- ProcessInfo.cs
- DependencyObjectProvider.cs
- CompilerParameters.cs
- DesignerListAdapter.cs
- SamlAdvice.cs
- precedingquery.cs
- DataGridRelationshipRow.cs
- SubpageParaClient.cs
- WebPartAuthorizationEventArgs.cs
- RepeatButton.cs
- HexParser.cs
- RuntimeTrackingProfile.cs
- HebrewNumber.cs
- ListView.cs
- Models.cs
- ToolStripDropDownClosedEventArgs.cs
- HostVisual.cs
- TargetInvocationException.cs
- ServiceContractViewControl.cs
- TimeIntervalCollection.cs
- FormViewDeletedEventArgs.cs
- InternalPermissions.cs
- ResourceExpression.cs
- AbstractDataSvcMapFileLoader.cs
- RoutedEvent.cs
- SendDesigner.xaml.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- TableLayoutColumnStyleCollection.cs
- XmlAnyAttributeAttribute.cs
- ResourceAssociationSet.cs
- UidPropertyAttribute.cs
- SessionEndedEventArgs.cs
- XmlDataSourceNodeDescriptor.cs
- SchemaTableOptionalColumn.cs
- AnnotationHelper.cs
- TypefaceCollection.cs
- ContainerActivationHelper.cs
- AuthenticationConfig.cs
- SchemaImporterExtensionElementCollection.cs
- TakeQueryOptionExpression.cs
- TreeView.cs
- StrokeDescriptor.cs
- ArraySegment.cs
- EntityProxyTypeInfo.cs
- EntityDesignerUtils.cs
- PrintEvent.cs
- WorkflowEnvironment.cs
- XmlWrappingReader.cs
- FileAuthorizationModule.cs
- BroadcastEventHelper.cs
- ViewSimplifier.cs
- FontFaceLayoutInfo.cs
- ConcurrencyBehavior.cs
- ContextMenu.cs
- XsltContext.cs
- ByteStream.cs
- Formatter.cs
- SizeChangedEventArgs.cs