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
- AppSecurityManager.cs
- FileChangesMonitor.cs
- ConfigurationPropertyAttribute.cs
- ImageCodecInfo.cs
- MsmqQueue.cs
- BamlRecordHelper.cs
- glyphs.cs
- PointConverter.cs
- TrustLevelCollection.cs
- Exceptions.cs
- HandlerFactoryCache.cs
- DiscoveryInnerClientManaged11.cs
- RequestNavigateEventArgs.cs
- StateManagedCollection.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- HttpInputStream.cs
- TextEditorTables.cs
- HttpRequest.cs
- InstanceCreationEditor.cs
- AttributeQuery.cs
- DbParameterCollection.cs
- ScrollViewer.cs
- ISCIIEncoding.cs
- HtmlTableRowCollection.cs
- CompoundFileIOPermission.cs
- WebPartConnectionsCancelEventArgs.cs
- NativeMethods.cs
- FileDialog.cs
- Stack.cs
- ListViewItemEventArgs.cs
- AlignmentYValidation.cs
- SerializationObjectManager.cs
- ConnectionsZoneDesigner.cs
- WebPartMenu.cs
- NavigationPropertyEmitter.cs
- OleDbTransaction.cs
- AspCompat.cs
- TypeElement.cs
- HwndSourceParameters.cs
- WindowsScrollBarBits.cs
- InternalConfigHost.cs
- UnsafeNativeMethodsPenimc.cs
- Point3DIndependentAnimationStorage.cs
- SectionInformation.cs
- SupportingTokenDuplexChannel.cs
- MarkupProperty.cs
- GeometryCollection.cs
- AppSettingsExpressionBuilder.cs
- AccessDataSource.cs
- DirectoryInfo.cs
- NativeRecognizer.cs
- AnnotationStore.cs
- Pen.cs
- MessageBox.cs
- EventBuilder.cs
- PersistenceException.cs
- StatusBarItemAutomationPeer.cs
- FormatterServices.cs
- BypassElementCollection.cs
- ScrollPattern.cs
- OrderPreservingSpoolingTask.cs
- CodeArrayCreateExpression.cs
- ColorInterpolationModeValidation.cs
- FeatureSupport.cs
- Range.cs
- FilterException.cs
- SettingsPropertyWrongTypeException.cs
- AppDomainShutdownMonitor.cs
- StylusButtonCollection.cs
- categoryentry.cs
- DbProviderFactory.cs
- Executor.cs
- DrawingContextDrawingContextWalker.cs
- IssuedTokenClientElement.cs
- DesignConnection.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- DllHostInitializer.cs
- ViewStateException.cs
- FileDialog.cs
- SerializationInfoEnumerator.cs
- ResourceSetExpression.cs
- _AutoWebProxyScriptEngine.cs
- FontWeight.cs
- WebPartConnectionsCancelEventArgs.cs
- ConfigXmlSignificantWhitespace.cs
- FramingEncoders.cs
- DataServiceHost.cs
- SerializationInfo.cs
- XmlCollation.cs
- ADRoleFactory.cs
- XPathChildIterator.cs
- FlowDocumentReaderAutomationPeer.cs
- DataGridBoundColumn.cs
- SqlBuilder.cs
- PrePostDescendentsWalker.cs
- SignatureResourceHelper.cs
- ModelFunctionTypeElement.cs
- ValueExpressions.cs
- SQLMembershipProvider.cs
- FixedStringLookup.cs