Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- Exceptions.cs
- DocumentationServerProtocol.cs
- MasterPage.cs
- LayoutSettings.cs
- EnumerableCollectionView.cs
- GroupBoxRenderer.cs
- BackgroundWorker.cs
- FixedSOMTableCell.cs
- ValidatingReaderNodeData.cs
- InsufficientMemoryException.cs
- SoapTypeAttribute.cs
- SecurityPermission.cs
- FrameworkTextComposition.cs
- Pair.cs
- SortFieldComparer.cs
- SiteMapProvider.cs
- SqlPersonalizationProvider.cs
- ToolStripHighContrastRenderer.cs
- AdapterUtil.cs
- ListenerBinder.cs
- ElementHostPropertyMap.cs
- SwitchCase.cs
- MenuItemStyleCollection.cs
- ReferencedAssembly.cs
- AstNode.cs
- OdbcInfoMessageEvent.cs
- Vector3DCollection.cs
- TreeNodeStyle.cs
- GeneratedView.cs
- RotateTransform.cs
- DocumentPageTextView.cs
- DeploymentSectionCache.cs
- PrinterUnitConvert.cs
- NativeObjectSecurity.cs
- XmlAnyAttributeAttribute.cs
- CheckPair.cs
- ProjectionPath.cs
- CalendarBlackoutDatesCollection.cs
- ResourceProviderFactory.cs
- TextEndOfLine.cs
- ExpressionEditorAttribute.cs
- ServiceOperationHelpers.cs
- ViewStateModeByIdAttribute.cs
- GenericEnumConverter.cs
- DefaultPropertyAttribute.cs
- FolderBrowserDialog.cs
- KeyFrames.cs
- FixedPageProcessor.cs
- XamlBrushSerializer.cs
- GridItemPattern.cs
- _SslStream.cs
- RefreshPropertiesAttribute.cs
- SoapConverter.cs
- CategoryList.cs
- DataKey.cs
- DllNotFoundException.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- GeometryGroup.cs
- ObjectQuery_EntitySqlExtensions.cs
- ChannelManager.cs
- AvTraceDetails.cs
- InputLangChangeRequestEvent.cs
- _LocalDataStore.cs
- RecognizerInfo.cs
- GlobalizationSection.cs
- CodePageUtils.cs
- CalendarDay.cs
- LiteralLink.cs
- DBConcurrencyException.cs
- Invariant.cs
- nulltextcontainer.cs
- DotExpr.cs
- OrderedDictionary.cs
- DiagnosticTrace.cs
- SubclassTypeValidator.cs
- BaseWebProxyFinder.cs
- Odbc32.cs
- CapabilitiesState.cs
- FrameSecurityDescriptor.cs
- ExpressionBindingCollection.cs
- SQLMembershipProvider.cs
- ACE.cs
- FontCacheLogic.cs
- invalidudtexception.cs
- ResolveMatchesMessageCD1.cs
- ApplicationCommands.cs
- RectangleConverter.cs
- ScrollData.cs
- WebBrowserNavigatingEventHandler.cs
- _ListenerAsyncResult.cs
- IdleTimeoutMonitor.cs
- XhtmlBasicListAdapter.cs
- Vertex.cs
- OrderedEnumerableRowCollection.cs
- SqlTriggerContext.cs
- XmlILOptimizerVisitor.cs
- XmlSchemaComplexContentRestriction.cs
- KnownBoxes.cs
- MailAddressParser.cs
- MobileControlDesigner.cs