Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- COMException.cs
- OverrideMode.cs
- Crypto.cs
- TraceSwitch.cs
- DataGridViewCellCollection.cs
- IISMapPath.cs
- TrackBar.cs
- DocumentSequence.cs
- ListViewTableRow.cs
- AsyncOperation.cs
- ProxyManager.cs
- PasswordBoxAutomationPeer.cs
- KeyGestureValueSerializer.cs
- HtmlImage.cs
- SrgsDocumentParser.cs
- RequestContextBase.cs
- DefaultEvaluationContext.cs
- EntityDesignerUtils.cs
- WebPartUtil.cs
- MetadataStore.cs
- EllipticalNodeOperations.cs
- DiscoveryClientDocuments.cs
- NamedPipeChannelFactory.cs
- PointUtil.cs
- AtomPub10ServiceDocumentFormatter.cs
- LoadWorkflowCommand.cs
- PageTheme.cs
- UdpUtility.cs
- SHA1.cs
- ObjectParameterCollection.cs
- DataGridAddNewRow.cs
- ObjectItemCachedAssemblyLoader.cs
- PropertyExpression.cs
- HierarchicalDataBoundControl.cs
- QualificationDataItem.cs
- Command.cs
- PolyQuadraticBezierSegment.cs
- ColumnResizeAdorner.cs
- PolicyLevel.cs
- TimerElapsedEvenArgs.cs
- NotifyParentPropertyAttribute.cs
- AbandonedMutexException.cs
- MapPathBasedVirtualPathProvider.cs
- RectAnimationBase.cs
- XmlSerializationWriter.cs
- Journaling.cs
- latinshape.cs
- Helper.cs
- RichTextBox.cs
- BindingMemberInfo.cs
- ServiceMetadataExtension.cs
- UIntPtr.cs
- SelectorAutomationPeer.cs
- RequiredAttributeAttribute.cs
- DrawingImage.cs
- ConnectivityStatus.cs
- ZoneIdentityPermission.cs
- CachedFontFace.cs
- LicFileLicenseProvider.cs
- SqlSelectClauseBuilder.cs
- DateTimeEditor.cs
- MetaModel.cs
- XmlFileEditor.cs
- SurrogateChar.cs
- FontEmbeddingManager.cs
- SpellerHighlightLayer.cs
- XmlUTF8TextReader.cs
- FormsAuthenticationModule.cs
- PersonalizationEntry.cs
- PropertyEntry.cs
- LocalizabilityAttribute.cs
- IISMapPath.cs
- ISessionStateStore.cs
- ThaiBuddhistCalendar.cs
- JsonDeserializer.cs
- ServiceParser.cs
- BamlMapTable.cs
- StringUtil.cs
- AssociationTypeEmitter.cs
- BulletedList.cs
- PropertyPath.cs
- ExpressionParser.cs
- sqlmetadatafactory.cs
- BitFlagsGenerator.cs
- VirtualDirectoryMapping.cs
- KeyedByTypeCollection.cs
- SoapIncludeAttribute.cs
- MappingException.cs
- FlowDocumentReader.cs
- webproxy.cs
- BatchStream.cs
- DataTableNewRowEvent.cs
- FormatStringEditor.cs
- URIFormatException.cs
- DesignerObjectListAdapter.cs
- Win32.cs
- IpcClientChannel.cs
- XmlSchemaSubstitutionGroup.cs
- PageCatalogPart.cs
- NameSpaceExtractor.cs