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
- PassportAuthenticationEventArgs.cs
- DispatcherFrame.cs
- SecurityHelper.cs
- ParserStreamGeometryContext.cs
- BinaryParser.cs
- _UncName.cs
- ObjectStateManagerMetadata.cs
- configsystem.cs
- XmlCharCheckingReader.cs
- IOException.cs
- SoapIgnoreAttribute.cs
- SqlInternalConnectionTds.cs
- CancellableEnumerable.cs
- RightsManagementResourceHelper.cs
- SettingsPropertyValue.cs
- PathSegment.cs
- MachineKeyConverter.cs
- CompilerLocalReference.cs
- SslStream.cs
- PathSegmentCollection.cs
- MeasureData.cs
- DoubleAnimationBase.cs
- MissingFieldException.cs
- AppDomainGrammarProxy.cs
- VirtualPath.cs
- ValueUtilsSmi.cs
- BitmapSource.cs
- WebBodyFormatMessageProperty.cs
- ApplicationServicesHostFactory.cs
- ReflectionUtil.cs
- XmlUtilWriter.cs
- DataGridViewColumnTypeEditor.cs
- PriorityRange.cs
- EmptyReadOnlyDictionaryInternal.cs
- designeractionbehavior.cs
- DebugView.cs
- OneOfConst.cs
- MediaSystem.cs
- GatewayDefinition.cs
- ExceptionHelpers.cs
- SqlBooleanMismatchVisitor.cs
- StrongNameMembershipCondition.cs
- HtmlToClrEventProxy.cs
- ExpressionPrinter.cs
- DeviceFiltersSection.cs
- WebServiceMethodData.cs
- WindowInteractionStateTracker.cs
- AlphabeticalEnumConverter.cs
- MinMaxParagraphWidth.cs
- GetParentChain.cs
- ProcessHostServerConfig.cs
- BindingExpressionBase.cs
- Int16KeyFrameCollection.cs
- followingquery.cs
- documentsequencetextcontainer.cs
- AttachedAnnotationChangedEventArgs.cs
- TextEffectCollection.cs
- ButtonChrome.cs
- CharacterShapingProperties.cs
- AuthenticationSection.cs
- webbrowsersite.cs
- EmptyImpersonationContext.cs
- IdentitySection.cs
- ThreadInterruptedException.cs
- Point3DAnimation.cs
- MultipleViewProviderWrapper.cs
- WebEventTraceProvider.cs
- AliasGenerator.cs
- SQLDoubleStorage.cs
- DisplayMemberTemplateSelector.cs
- PrePostDescendentsWalker.cs
- EdmSchemaError.cs
- VisualTreeHelper.cs
- PageMediaType.cs
- TypeDescriptionProvider.cs
- DataFieldConverter.cs
- WindowsListBox.cs
- PropertyTabChangedEvent.cs
- ProxyWebPartConnectionCollection.cs
- BrushConverter.cs
- PrimitiveOperationFormatter.cs
- LayoutEditorPart.cs
- ReadOnlyCollection.cs
- PropertyCondition.cs
- XmlSchemaSimpleContent.cs
- PropertyGridEditorPart.cs
- FileAuthorizationModule.cs
- remotingproxy.cs
- DeferredElementTreeState.cs
- SchemaComplexType.cs
- EntityViewGenerator.cs
- LicenseProviderAttribute.cs
- OperationResponse.cs
- XamlFilter.cs
- lengthconverter.cs
- BrowserCapabilitiesFactory.cs
- ImageInfo.cs
- MdiWindowListItemConverter.cs
- TransformPatternIdentifiers.cs
- SHA256Managed.cs