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
- DataGridState.cs
- JobDuplex.cs
- CompilerCollection.cs
- NestedContainer.cs
- SerialReceived.cs
- FlowPosition.cs
- CaretElement.cs
- TypeLoadException.cs
- Compiler.cs
- DocumentXPathNavigator.cs
- XmlProcessingInstruction.cs
- FocusWithinProperty.cs
- HelpEvent.cs
- FramingFormat.cs
- ConsoleCancelEventArgs.cs
- SqlCommandSet.cs
- SinglePhaseEnlistment.cs
- DesignerLabelAdapter.cs
- Lazy.cs
- Renderer.cs
- tooltip.cs
- ToolStripItemClickedEventArgs.cs
- AttributeCollection.cs
- RuntimeConfigLKG.cs
- DesignColumn.cs
- Merger.cs
- PixelShader.cs
- StreamGeometryContext.cs
- XPathDocumentIterator.cs
- RectAnimation.cs
- StatusBarAutomationPeer.cs
- QueuePropertyVariants.cs
- Msec.cs
- InternalResources.cs
- PerformanceCounterCategory.cs
- keycontainerpermission.cs
- Geometry3D.cs
- WorkflowFileItem.cs
- PostBackOptions.cs
- Site.cs
- BitmapEffectGroup.cs
- StorageMappingItemLoader.cs
- PrivilegedConfigurationManager.cs
- SqlBinder.cs
- OleCmdHelper.cs
- FileDialogPermission.cs
- AlternationConverter.cs
- Deflater.cs
- WebPartConnectionCollection.cs
- StorageMappingItemCollection.cs
- SqlMethodAttribute.cs
- CapabilitiesAssignment.cs
- ConfigXmlElement.cs
- Argument.cs
- HttpCapabilitiesSectionHandler.cs
- ReflectTypeDescriptionProvider.cs
- ViewBase.cs
- WebPartEditorApplyVerb.cs
- CharEnumerator.cs
- DBSqlParser.cs
- HostElement.cs
- DatePickerTextBox.cs
- DeviceContext.cs
- EditorServiceContext.cs
- TypeSystemProvider.cs
- ImpersonateTokenRef.cs
- HighContrastHelper.cs
- WebRequestModuleElementCollection.cs
- FolderBrowserDialogDesigner.cs
- TargetParameterCountException.cs
- CodeIdentifier.cs
- DbProviderFactoriesConfigurationHandler.cs
- DbDataReader.cs
- MarginCollapsingState.cs
- LinqDataSourceSelectEventArgs.cs
- SecurityKeyUsage.cs
- PlainXmlSerializer.cs
- ListViewHitTestInfo.cs
- WpfGeneratedKnownTypes.cs
- InputLanguageProfileNotifySink.cs
- SafeEventLogWriteHandle.cs
- TableCell.cs
- ServiceElement.cs
- MatrixKeyFrameCollection.cs
- COM2Enum.cs
- ObfuscationAttribute.cs
- SqlXml.cs
- FolderBrowserDialogDesigner.cs
- KeyTimeConverter.cs
- ExternalFile.cs
- FileDetails.cs
- Visual3D.cs
- FrameworkContextData.cs
- SoapSchemaMember.cs
- TableRowGroup.cs
- MouseGesture.cs
- Label.cs
- QuadraticEase.cs
- ISSmlParser.cs
- SystemColors.cs