Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / 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. //------------------------------------------------------------------------------ //// 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EventPropertyMap.cs
- SystemWebSectionGroup.cs
- ResourcePermissionBase.cs
- KeyGestureValueSerializer.cs
- SafeNativeMemoryHandle.cs
- XsltSettings.cs
- CodeTypeDeclarationCollection.cs
- LogRestartAreaEnumerator.cs
- TabRenderer.cs
- RoutedCommand.cs
- SharingService.cs
- ProtectedProviderSettings.cs
- ValidateNames.cs
- DeleteStoreRequest.cs
- WasEndpointConfigContainer.cs
- MimePart.cs
- CommandCollectionEditor.cs
- SqlDataSourceCommandEventArgs.cs
- CircleHotSpot.cs
- WebConfigurationFileMap.cs
- SamlAttributeStatement.cs
- ToolStripSplitStackLayout.cs
- IdentityNotMappedException.cs
- JpegBitmapDecoder.cs
- SpanIndex.cs
- LeafCellTreeNode.cs
- Path.cs
- SortedList.cs
- InternalsVisibleToAttribute.cs
- RSACryptoServiceProvider.cs
- QuaternionRotation3D.cs
- Interlocked.cs
- WrappedKeySecurityTokenParameters.cs
- DataControlExtensions.cs
- Mouse.cs
- FixedSOMPageElement.cs
- SoapClientMessage.cs
- SqlMethodTransformer.cs
- ByteStreamGeometryContext.cs
- DataControlPagerLinkButton.cs
- ImplicitInputBrush.cs
- LinearGradientBrush.cs
- AsyncResult.cs
- WpfPayload.cs
- FixedTextPointer.cs
- ScriptingProfileServiceSection.cs
- HwndAppCommandInputProvider.cs
- XmlSiteMapProvider.cs
- ExceptionUtil.cs
- CodeConditionStatement.cs
- BindingCollection.cs
- COM2EnumConverter.cs
- ContainerAction.cs
- SetIterators.cs
- EditingMode.cs
- XmlUnspecifiedAttribute.cs
- WrappedIUnknown.cs
- ParserStreamGeometryContext.cs
- CacheMemory.cs
- DependentList.cs
- MemberDomainMap.cs
- CaseInsensitiveComparer.cs
- QuadraticBezierSegment.cs
- httpstaticobjectscollection.cs
- httpserverutility.cs
- CreateUserErrorEventArgs.cs
- RuleSet.cs
- BulletDecorator.cs
- BitmapMetadataBlob.cs
- UnSafeCharBuffer.cs
- AutoGeneratedFieldProperties.cs
- SafeCryptHandles.cs
- CodeGotoStatement.cs
- ResourcePool.cs
- DetailsViewPagerRow.cs
- GregorianCalendar.cs
- ToolTipService.cs
- mactripleDES.cs
- TableLayoutSettingsTypeConverter.cs
- DataGridColumnCollection.cs
- Assembly.cs
- ObjectListSelectEventArgs.cs
- MgmtResManager.cs
- XmlElementList.cs
- ApplicationHost.cs
- ModelVisual3D.cs
- DbConnectionPoolOptions.cs
- StatusCommandUI.cs
- ImageCodecInfoPrivate.cs
- ListCollectionView.cs
- QilInvokeEarlyBound.cs
- TypeHelper.cs
- ContextDataSourceContextData.cs
- MailWebEventProvider.cs
- DeferredSelectedIndexReference.cs
- IIS7UserPrincipal.cs
- ItemCollectionEditor.cs
- PageFunction.cs
- WebPartsPersonalizationAuthorization.cs
- InstancePersistenceException.cs