Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XAMLParseException.cs
- BinaryConverter.cs
- StylusButtonCollection.cs
- GcSettings.cs
- DynamicPropertyHolder.cs
- XsdDuration.cs
- filewebresponse.cs
- XmlSchemaSimpleContentRestriction.cs
- UIElementIsland.cs
- WeakEventManager.cs
- PresentationTraceSources.cs
- ControlBuilderAttribute.cs
- ValueExpressions.cs
- StaticDataManager.cs
- DbProviderFactories.cs
- InvalidComObjectException.cs
- ToolStripPanelDesigner.cs
- Span.cs
- PriorityQueue.cs
- Color.cs
- CollectionViewProxy.cs
- Function.cs
- BufferedReadStream.cs
- NullableConverter.cs
- MarkupProperty.cs
- WebPartAddingEventArgs.cs
- TdsParameterSetter.cs
- SafeHandle.cs
- XmlNamedNodeMap.cs
- ModuleConfigurationInfo.cs
- GenericTypeParameterBuilder.cs
- XPathEmptyIterator.cs
- CapiSymmetricAlgorithm.cs
- CodeDirectionExpression.cs
- DatePickerDateValidationErrorEventArgs.cs
- Suspend.cs
- BadImageFormatException.cs
- AutomationElement.cs
- SortedList.cs
- PropertyConverter.cs
- StateManagedCollection.cs
- NetWebProxyFinder.cs
- RSAPKCS1KeyExchangeFormatter.cs
- MsmqIntegrationMessagePool.cs
- FrameworkElementFactory.cs
- HtmlInputPassword.cs
- WebScriptMetadataMessage.cs
- DataGridViewRowCancelEventArgs.cs
- FixedSOMElement.cs
- StaticExtension.cs
- BevelBitmapEffect.cs
- VisualStyleInformation.cs
- SqlCommand.cs
- InternalRelationshipCollection.cs
- FontStretchConverter.cs
- OutKeywords.cs
- IndexExpression.cs
- TcpSocketManager.cs
- PackageDocument.cs
- DES.cs
- DbModificationCommandTree.cs
- StringKeyFrameCollection.cs
- Choices.cs
- ChildTable.cs
- FunctionUpdateCommand.cs
- CompilerCollection.cs
- PrivateFontCollection.cs
- OperatingSystem.cs
- ColorMatrix.cs
- DataGridViewRowConverter.cs
- TextElementEnumerator.cs
- IdentityModelStringsVersion1.cs
- MessagingDescriptionAttribute.cs
- PrivilegeNotHeldException.cs
- CqlGenerator.cs
- CodeDefaultValueExpression.cs
- SponsorHelper.cs
- ManifestResourceInfo.cs
- SecurityStandardsManager.cs
- CloseSequence.cs
- UxThemeWrapper.cs
- NotificationContext.cs
- FillErrorEventArgs.cs
- CacheSection.cs
- SimpleType.cs
- TdsParserSafeHandles.cs
- WmpBitmapEncoder.cs
- CornerRadius.cs
- FormViewRow.cs
- PropertyDescriptors.cs
- SmtpNtlmAuthenticationModule.cs
- MetaColumn.cs
- Icon.cs
- BaseDataBoundControl.cs
- TypefaceMap.cs
- RbTree.cs
- Transform3DGroup.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- NextPreviousPagerField.cs
- RTTypeWrapper.cs