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
- InstanceDataCollection.cs
- ArgumentException.cs
- ExpressionEditorAttribute.cs
- securestring.cs
- Size3D.cs
- MethodSignatureGenerator.cs
- ConnectionManager.cs
- Missing.cs
- FactoryGenerator.cs
- Internal.cs
- WsatServiceCertificate.cs
- ExceptionTranslationTable.cs
- QueryConverter.cs
- RegexWorker.cs
- PageThemeParser.cs
- FormClosedEvent.cs
- FixedSOMLineCollection.cs
- TCPClient.cs
- DelayDesigner.cs
- StronglyTypedResourceBuilder.cs
- TypeNameConverter.cs
- JournalNavigationScope.cs
- ListControl.cs
- DoubleAnimationUsingKeyFrames.cs
- PEFileEvidenceFactory.cs
- HostedTcpTransportManager.cs
- Registry.cs
- EventWaitHandle.cs
- SeekStoryboard.cs
- SystemSounds.cs
- CallbackValidatorAttribute.cs
- BaseConfigurationRecord.cs
- KnownAssemblyEntry.cs
- GcHandle.cs
- SkipQueryOptionExpression.cs
- WebBrowserNavigatingEventHandler.cs
- LinqDataView.cs
- GestureRecognizer.cs
- PermissionSet.cs
- HtmlElement.cs
- PrincipalPermissionMode.cs
- DrawingAttributes.cs
- TabletCollection.cs
- WorkflowDurableInstance.cs
- ReferenceTypeElement.cs
- HierarchicalDataTemplate.cs
- FilterElement.cs
- ChannelTokenTypeConverter.cs
- DataSetMappper.cs
- CachingHintValidation.cs
- WebPartZoneBaseDesigner.cs
- LoginName.cs
- WorkflowWebService.cs
- XmlUnspecifiedAttribute.cs
- DataReaderContainer.cs
- CancellationHandler.cs
- Identifier.cs
- WebRequestModuleElementCollection.cs
- WebResourceUtil.cs
- XsltSettings.cs
- ViewManager.cs
- PropertyConverter.cs
- SqlDependency.cs
- SecurityTokenSerializer.cs
- GradientStop.cs
- ComponentDispatcherThread.cs
- MinMaxParagraphWidth.cs
- Storyboard.cs
- RuntimeArgumentHandle.cs
- StateMachine.cs
- IdnElement.cs
- TypedMessageConverter.cs
- TokenBasedSetEnumerator.cs
- StaticContext.cs
- SafeArrayRankMismatchException.cs
- TreeNodeCollectionEditorDialog.cs
- HtmlInputCheckBox.cs
- DPTypeDescriptorContext.cs
- EntityDataReader.cs
- ThemeConfigurationDialog.cs
- SchemaConstraints.cs
- WebHeaderCollection.cs
- XmlWrappingWriter.cs
- UrlMappingsModule.cs
- Expressions.cs
- RemotingServices.cs
- InputMethodStateTypeInfo.cs
- _DisconnectOverlappedAsyncResult.cs
- IntranetCredentialPolicy.cs
- MultiView.cs
- Emitter.cs
- PartBasedPackageProperties.cs
- WebConfigurationHost.cs
- FamilyMapCollection.cs
- followingsibling.cs
- TreeViewAutomationPeer.cs
- WebPartUserCapability.cs
- DocumentSequenceHighlightLayer.cs
- SafeArrayRankMismatchException.cs
- WebPartDeleteVerb.cs