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
- GridViewUpdatedEventArgs.cs
- StickyNoteAnnotations.cs
- Menu.cs
- StateManagedCollection.cs
- FileVersionInfo.cs
- IPGlobalProperties.cs
- ColorPalette.cs
- Header.cs
- BulletDecorator.cs
- SectionXmlInfo.cs
- RealizedColumnsBlock.cs
- ImageConverter.cs
- ResolveNameEventArgs.cs
- SystemResourceHost.cs
- DataSourceComponent.cs
- UriParserTemplates.cs
- WebPartEventArgs.cs
- WmlObjectListAdapter.cs
- EnvironmentPermission.cs
- PersonalizationProviderHelper.cs
- Matrix.cs
- ConnectionConsumerAttribute.cs
- LayoutManager.cs
- DateTime.cs
- Int32AnimationUsingKeyFrames.cs
- XmlReflectionMember.cs
- TemplateNameScope.cs
- BinaryMethodMessage.cs
- WorkflowDispatchContext.cs
- JapaneseCalendar.cs
- ManifestResourceInfo.cs
- Win32Exception.cs
- LowerCaseStringConverter.cs
- TaskbarItemInfo.cs
- RuntimeConfigurationRecord.cs
- BindingMAnagerBase.cs
- TextTreePropertyUndoUnit.cs
- SoapIncludeAttribute.cs
- RsaElement.cs
- AnnotationComponentManager.cs
- Statements.cs
- IgnoreFileBuildProvider.cs
- BitmapSourceSafeMILHandle.cs
- ListViewItemMouseHoverEvent.cs
- CatalogPartCollection.cs
- DesignTimeVisibleAttribute.cs
- CapabilitiesAssignment.cs
- StickyNoteAnnotations.cs
- EncoderNLS.cs
- XmlSchemaObject.cs
- MulticastNotSupportedException.cs
- MetadataException.cs
- Application.cs
- BamlTreeNode.cs
- BindingSource.cs
- CodeGeneratorOptions.cs
- CompressEmulationStream.cs
- DataBindingCollectionConverter.cs
- FontUnitConverter.cs
- SimpleHandlerFactory.cs
- ImageListImage.cs
- HttpApplicationFactory.cs
- XmlSchemaSubstitutionGroup.cs
- AddressUtility.cs
- FixUpCollection.cs
- DocumentPageTextView.cs
- SqlInternalConnectionTds.cs
- CriticalFinalizerObject.cs
- SolidColorBrush.cs
- TextEndOfSegment.cs
- SamlSubject.cs
- SQLMembershipProvider.cs
- SqlBuffer.cs
- LocalizedNameDescriptionPair.cs
- EnumConverter.cs
- TypeExtensionConverter.cs
- SQLUtility.cs
- ExpressionConverter.cs
- EventBuilder.cs
- SymmetricKey.cs
- basenumberconverter.cs
- StrongNameKeyPair.cs
- RepeaterItemEventArgs.cs
- LineServicesRun.cs
- ProcessThreadCollection.cs
- BulletChrome.cs
- HierarchicalDataBoundControl.cs
- DynamicResourceExtensionConverter.cs
- DesignerActionHeaderItem.cs
- FreeIndexList.cs
- TdsRecordBufferSetter.cs
- ParallelEnumerable.cs
- StrongNameUtility.cs
- CodeSnippetCompileUnit.cs
- VirtualPathUtility.cs
- RegexParser.cs
- ActivationArguments.cs
- AppSettings.cs
- ProtocolsConfigurationEntry.cs
- SimpleApplicationHost.cs