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
- CompatibleIComparer.cs
- IndexedWhereQueryOperator.cs
- sqlinternaltransaction.cs
- CodeGeneratorOptions.cs
- EtwProvider.cs
- FixedTextView.cs
- Function.cs
- UpdatePanel.cs
- XmlArrayAttribute.cs
- Button.cs
- RequestCachePolicyConverter.cs
- MimeTypeMapper.cs
- ResourceBinder.cs
- BamlWriter.cs
- SwitchAttribute.cs
- TableParagraph.cs
- CodeGroup.cs
- EntityContainerRelationshipSetEnd.cs
- ISAPIApplicationHost.cs
- TextAdaptor.cs
- TreeNodeStyle.cs
- CommandBindingCollection.cs
- MarkupWriter.cs
- ConvertEvent.cs
- WebBrowserNavigatedEventHandler.cs
- FactoryRecord.cs
- UnsafeNativeMethods.cs
- UriSchemeKeyedCollection.cs
- RelatedView.cs
- TemplateComponentConnector.cs
- VirtualPath.cs
- PropertyGridView.cs
- TextAnchor.cs
- CodeCommentStatement.cs
- DbParameterCollection.cs
- EntityFunctions.cs
- UnmanagedHandle.cs
- ReferencedAssembly.cs
- System.Data_BID.cs
- UIPropertyMetadata.cs
- SegmentInfo.cs
- ListQueryResults.cs
- ReadOnlyCollectionBuilder.cs
- DiscoveryOperationContext.cs
- CustomAttributeBuilder.cs
- ReachDocumentSequenceSerializer.cs
- TargetException.cs
- PointKeyFrameCollection.cs
- ISAPIRuntime.cs
- storepermissionattribute.cs
- ArithmeticException.cs
- ServicePointManagerElement.cs
- BinaryObjectWriter.cs
- Control.cs
- DataGridViewColumnHeaderCell.cs
- SymbolType.cs
- OleDbWrapper.cs
- TextSearch.cs
- ZeroOpNode.cs
- CredentialCache.cs
- TextParentUndoUnit.cs
- SqlLiftIndependentRowExpressions.cs
- ModuleConfigurationInfo.cs
- ReadOnlyAttribute.cs
- ColumnCollection.cs
- DataSourceBooleanViewSchemaConverter.cs
- XPathConvert.cs
- safePerfProviderHandle.cs
- ListViewSortEventArgs.cs
- XmlSchemaIdentityConstraint.cs
- HTMLTextWriter.cs
- BitmapScalingModeValidation.cs
- IResourceProvider.cs
- CancelEventArgs.cs
- TableCell.cs
- FixedSOMTextRun.cs
- BitmapMetadataBlob.cs
- FamilyCollection.cs
- XmlHierarchyData.cs
- ListItemConverter.cs
- EncodingConverter.cs
- WebPartEditorCancelVerb.cs
- RelationshipWrapper.cs
- Parsers.cs
- StrokeNodeData.cs
- Model3DCollection.cs
- DataService.cs
- PrintPreviewGraphics.cs
- GridViewRowEventArgs.cs
- KeyGesture.cs
- SHA256.cs
- HMACRIPEMD160.cs
- SoapHttpTransportImporter.cs
- ControlEvent.cs
- EventLogPermissionAttribute.cs
- TaskDesigner.cs
- PersonalizationStateInfo.cs
- BeginSelectCardRequest.cs
- InstanceNormalEvent.cs
- GenericIdentity.cs