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
- SlipBehavior.cs
- NonSerializedAttribute.cs
- MaskedTextProvider.cs
- BooleanKeyFrameCollection.cs
- ObjectDataSourceChooseTypePanel.cs
- TextRangeEditLists.cs
- cookie.cs
- TextServicesDisplayAttribute.cs
- ItemCheckedEvent.cs
- DataKey.cs
- Rect.cs
- TextEditorCharacters.cs
- MultiByteCodec.cs
- StyleSelector.cs
- SizeConverter.cs
- ToolStripArrowRenderEventArgs.cs
- RequestQueue.cs
- xmlformatgeneratorstatics.cs
- UnsafeNativeMethods.cs
- DoubleAnimationClockResource.cs
- Int16AnimationUsingKeyFrames.cs
- OleAutBinder.cs
- ScalarConstant.cs
- selecteditemcollection.cs
- RepeaterCommandEventArgs.cs
- MiniModule.cs
- ListView.cs
- ApplicationSecurityInfo.cs
- DeclaredTypeValidatorAttribute.cs
- DataColumn.cs
- HelpHtmlBuilder.cs
- HtmlGenericControl.cs
- CompiledQueryCacheEntry.cs
- SqlColumnizer.cs
- _LazyAsyncResult.cs
- FontStretches.cs
- OperandQuery.cs
- TypefaceCollection.cs
- WebPartRestoreVerb.cs
- PermissionSet.cs
- TextRange.cs
- TypeSystem.cs
- Normalization.cs
- SafeCancelMibChangeNotify.cs
- ValidatedControlConverter.cs
- PageAsyncTask.cs
- CodeNamespace.cs
- WebPageTraceListener.cs
- FileVersionInfo.cs
- ArgumentOutOfRangeException.cs
- DataKeyCollection.cs
- OperationResponse.cs
- StateChangeEvent.cs
- AuthenticationSection.cs
- MetaColumn.cs
- EventData.cs
- AccessControlEntry.cs
- ResourceExpressionEditor.cs
- GeometryCollection.cs
- _Connection.cs
- PrimitiveCodeDomSerializer.cs
- CharacterShapingProperties.cs
- EntitySqlQueryBuilder.cs
- TableRowsCollectionEditor.cs
- Graph.cs
- ToolStripRenderEventArgs.cs
- xmlsaver.cs
- XPathAncestorQuery.cs
- PropertyGridCommands.cs
- ToolStripPanel.cs
- IncrementalCompileAnalyzer.cs
- ResourcesGenerator.cs
- BaseAsyncResult.cs
- WorkflowHostingEndpoint.cs
- HandleRef.cs
- NonDualMessageSecurityOverHttpElement.cs
- DefinitionBase.cs
- XPathMultyIterator.cs
- NameValuePermission.cs
- XD.cs
- DataGridItemAutomationPeer.cs
- GraphicsPathIterator.cs
- Mutex.cs
- input.cs
- ToolZone.cs
- NeutralResourcesLanguageAttribute.cs
- MultidimensionalArrayItemReference.cs
- ClockGroup.cs
- LostFocusEventManager.cs
- LayoutEditorPart.cs
- ValidatedControlConverter.cs
- NonceCache.cs
- MediaCommands.cs
- WebAdminConfigurationHelper.cs
- XmlDataDocument.cs
- ClusterSafeNativeMethods.cs
- SamlDelegatingWriter.cs
- SimplePropertyEntry.cs
- NodeFunctions.cs
- SourceFileBuildProvider.cs