Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- Odbc32.cs
- BooleanFacetDescriptionElement.cs
- ObjectListSelectEventArgs.cs
- PrincipalPermissionMode.cs
- OdbcConnectionString.cs
- TreeNodeSelectionProcessor.cs
- Condition.cs
- ExpressionBuilderCollection.cs
- XPathArrayIterator.cs
- OracleConnectionString.cs
- LineInfo.cs
- XmlElementElementCollection.cs
- OptimalBreakSession.cs
- CompositeFontParser.cs
- Tag.cs
- InputProcessorProfiles.cs
- Timer.cs
- QueuePropertyVariants.cs
- AudienceUriMode.cs
- PropertyRecord.cs
- XPathNodeList.cs
- RijndaelManaged.cs
- SelectionRange.cs
- ParserOptions.cs
- wgx_sdk_version.cs
- X509Certificate.cs
- CubicEase.cs
- FileAuthorizationModule.cs
- RecommendedAsConfigurableAttribute.cs
- TreeViewAutomationPeer.cs
- NameValueCollection.cs
- StyleBamlRecordReader.cs
- ActivityExecutionWorkItem.cs
- OrderByExpression.cs
- ProtocolsInstallComponent.cs
- MemoryPressure.cs
- SqlWriter.cs
- TCPListener.cs
- WindowsStartMenu.cs
- XmlSchemaValidationException.cs
- NextPreviousPagerField.cs
- MessageEnumerator.cs
- SemanticResolver.cs
- AsymmetricCryptoHandle.cs
- ViewBase.cs
- Int32CollectionConverter.cs
- ImageAnimator.cs
- HMAC.cs
- SatelliteContractVersionAttribute.cs
- SimpleParser.cs
- Function.cs
- DbInsertCommandTree.cs
- SapiRecoContext.cs
- TextFormatterImp.cs
- StylusPointDescription.cs
- KeyValuePairs.cs
- SqlDataSourceStatusEventArgs.cs
- VolatileResourceManager.cs
- MyContact.cs
- InternalSafeNativeMethods.cs
- ReadOnlyCollectionBase.cs
- AnimationException.cs
- AssemblyCache.cs
- StreamReader.cs
- ConvertBinder.cs
- CroppedBitmap.cs
- ImpersonateTokenRef.cs
- ClassDataContract.cs
- RootBuilder.cs
- CommentEmitter.cs
- CodeMemberMethod.cs
- PersonalizationProviderHelper.cs
- XappLauncher.cs
- ClipboardData.cs
- ConnectorDragDropGlyph.cs
- ErrorWrapper.cs
- NativeCppClassAttribute.cs
- DataGridViewColumnCollection.cs
- DbProviderManifest.cs
- QueueNameHelper.cs
- BoundColumn.cs
- LogConverter.cs
- BinaryWriter.cs
- ProfileGroupSettings.cs
- HandleRef.cs
- DesignerVerbCollection.cs
- ThicknessAnimationBase.cs
- NonBatchDirectoryCompiler.cs
- MainMenu.cs
- HandleCollector.cs
- DbMetaDataColumnNames.cs
- FormsIdentity.cs
- WsdlInspector.cs
- ProcessingInstructionAction.cs
- URI.cs
- XPathDocumentIterator.cs
- XsdDataContractImporter.cs
- LinkedList.cs
- VerificationAttribute.cs
- Baml2006ReaderSettings.cs