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
- GenericTypeParameterBuilder.cs
- TimeSpanMinutesConverter.cs
- ObjectPersistData.cs
- ComPlusServiceLoader.cs
- SafeThreadHandle.cs
- WebColorConverter.cs
- RequestCachePolicy.cs
- ProviderConnectionPoint.cs
- EncodingTable.cs
- GlobalItem.cs
- ZipIORawDataFileBlock.cs
- DES.cs
- ToolStripControlHost.cs
- BrowserDefinitionCollection.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- FlagsAttribute.cs
- DataServiceProcessingPipeline.cs
- ImageMap.cs
- WebBrowserNavigatingEventHandler.cs
- SimpleWebHandlerParser.cs
- CachedFontFace.cs
- ReplacementText.cs
- WindowsBrush.cs
- MobileControlDesigner.cs
- GridViewColumnCollectionChangedEventArgs.cs
- BasePattern.cs
- ElapsedEventArgs.cs
- DefaultValidator.cs
- hresults.cs
- ProcessModuleCollection.cs
- Msmq4PoisonHandler.cs
- GeneralTransform2DTo3D.cs
- AssemblyHelper.cs
- QilXmlReader.cs
- exports.cs
- RelationshipManager.cs
- BitmapPalettes.cs
- __Error.cs
- MatrixAnimationUsingKeyFrames.cs
- XslCompiledTransform.cs
- PersonalizationStateInfoCollection.cs
- UnsafeNativeMethods.cs
- ClaimSet.cs
- RuleInfoComparer.cs
- DialogWindow.cs
- HierarchicalDataSourceControl.cs
- SqlPersonalizationProvider.cs
- ListItem.cs
- OneToOneMappingSerializer.cs
- SerialPort.cs
- DataSourceXmlTextReader.cs
- XMLDiffLoader.cs
- FillErrorEventArgs.cs
- CollectionViewSource.cs
- DtcInterfaces.cs
- ActiveXHelper.cs
- Triplet.cs
- objectresult_tresulttype.cs
- ZipFileInfo.cs
- NetworkStream.cs
- Win32Native.cs
- PropertyRef.cs
- SocketPermission.cs
- IISUnsafeMethods.cs
- NavigationService.cs
- DataServiceBehavior.cs
- ListBindingHelper.cs
- CacheDependency.cs
- ParameterBuilder.cs
- PageParserFilter.cs
- NotifyParentPropertyAttribute.cs
- HuffModule.cs
- XslCompiledTransform.cs
- HotSpotCollection.cs
- RegexCompilationInfo.cs
- StrokeIntersection.cs
- GeneralTransformCollection.cs
- SqlBulkCopy.cs
- LinqDataSource.cs
- TaskbarItemInfo.cs
- NativeMethods.cs
- TypeName.cs
- GPStream.cs
- remotingproxy.cs
- Crc32.cs
- CDSCollectionETWBCLProvider.cs
- GeneralTransform3DTo2DTo3D.cs
- CompressedStack.cs
- TransactionChannelFaultConverter.cs
- CheckBox.cs
- DataStreamFromComStream.cs
- Identity.cs
- MobileContainerDesigner.cs
- TemplateKeyConverter.cs
- WizardForm.cs
- PermissionSetTriple.cs
- DbConnectionPoolIdentity.cs
- ScriptControlDescriptor.cs
- FullTextBreakpoint.cs
- AccessControlList.cs