Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- IntranetCredentialPolicy.cs
- TypeSource.cs
- StateItem.cs
- autovalidator.cs
- SqlErrorCollection.cs
- Section.cs
- EntityConnectionStringBuilder.cs
- EntityCollectionChangedParams.cs
- latinshape.cs
- ClientTargetCollection.cs
- VScrollProperties.cs
- ArrangedElementCollection.cs
- WinFormsUtils.cs
- ToolStripComboBox.cs
- TabItemWrapperAutomationPeer.cs
- DiscoveryRequestHandler.cs
- WizardPanel.cs
- HybridObjectCache.cs
- QueryStringParameter.cs
- ExtractorMetadata.cs
- GenericEnumerator.cs
- DataColumnChangeEvent.cs
- TemplateEditingVerb.cs
- FrugalMap.cs
- DataTableCollection.cs
- DataStorage.cs
- SamlAudienceRestrictionCondition.cs
- ReadOnlyDataSource.cs
- HandlerFactoryCache.cs
- StoreItemCollection.cs
- TypeInitializationException.cs
- ToggleProviderWrapper.cs
- Vertex.cs
- XmlSubtreeReader.cs
- MultipleCopiesCollection.cs
- ValidationResult.cs
- HitTestDrawingContextWalker.cs
- RowUpdatingEventArgs.cs
- TableLayoutColumnStyleCollection.cs
- WorkItem.cs
- DbCommandTree.cs
- UniqueIdentifierService.cs
- complextypematerializer.cs
- FragmentQuery.cs
- RecordConverter.cs
- FigureHelper.cs
- RbTree.cs
- SmtpFailedRecipientsException.cs
- HtmlImage.cs
- DataGridCaption.cs
- _FixedSizeReader.cs
- StringReader.cs
- ItemCollection.cs
- _AutoWebProxyScriptHelper.cs
- FileDialog.cs
- Policy.cs
- CommandExpr.cs
- basecomparevalidator.cs
- JoinGraph.cs
- SimpleTableProvider.cs
- WebControlAdapter.cs
- CounterCreationData.cs
- WmlCommandAdapter.cs
- TextEditorCopyPaste.cs
- _AutoWebProxyScriptEngine.cs
- SafeProcessHandle.cs
- TextMarkerSource.cs
- Hyperlink.cs
- IPipelineRuntime.cs
- RegexCompiler.cs
- ResourceWriter.cs
- GenericIdentity.cs
- GroupQuery.cs
- shaperfactoryquerycacheentry.cs
- KerberosSecurityTokenProvider.cs
- InternalResources.cs
- TextDecorationLocationValidation.cs
- NeutralResourcesLanguageAttribute.cs
- BulletedListEventArgs.cs
- CanonicalFontFamilyReference.cs
- XmlSchemaRedefine.cs
- DynamicMetaObject.cs
- BooleanStorage.cs
- EdmProviderManifest.cs
- Decimal.cs
- X509ImageLogo.cs
- XPathNode.cs
- DataGridViewColumnTypeEditor.cs
- GetBrowserTokenRequest.cs
- PropertyPathWorker.cs
- CompareInfo.cs
- ActiveDocumentEvent.cs
- TemplateLookupAction.cs
- DBParameter.cs
- Guid.cs
- ClientConvert.cs
- FontDialog.cs
- DescendantQuery.cs
- DocumentStream.cs
- ImageAttributes.cs