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
- XsdBuilder.cs
- ClosableStream.cs
- AuthorizationRule.cs
- ObjectDataSourceSelectingEventArgs.cs
- IssuedSecurityTokenParameters.cs
- CombinedGeometry.cs
- EmptyStringExpandableObjectConverter.cs
- LinqDataSourceEditData.cs
- ProtectedConfiguration.cs
- CapabilitiesSection.cs
- NavigationHelper.cs
- DataPager.cs
- HttpHandlerAction.cs
- ToolboxItemAttribute.cs
- ToolStripGripRenderEventArgs.cs
- AspNetPartialTrustHelpers.cs
- InvokeMethodDesigner.xaml.cs
- WebPartVerb.cs
- ValidatorCompatibilityHelper.cs
- QilReplaceVisitor.cs
- EUCJPEncoding.cs
- ControlBuilderAttribute.cs
- LinearGradientBrush.cs
- SplineKeyFrames.cs
- IPEndPoint.cs
- Int64Converter.cs
- TreeNodeClickEventArgs.cs
- WindowsRichEditRange.cs
- DataSourceControl.cs
- UnmanagedMemoryStreamWrapper.cs
- PasswordValidationException.cs
- StructuredProperty.cs
- XmlSchemaSequence.cs
- MsmqIntegrationChannelListener.cs
- EasingFunctionBase.cs
- BasicDesignerLoader.cs
- RawStylusActions.cs
- LOSFormatter.cs
- DataGridViewComboBoxEditingControl.cs
- AsyncCallback.cs
- FloaterBaseParaClient.cs
- XsdCachingReader.cs
- AliasedSlot.cs
- ImageMap.cs
- DataControlField.cs
- StylusEventArgs.cs
- OpCopier.cs
- securitycriticaldata.cs
- ProcessHostMapPath.cs
- CanonicalXml.cs
- TemplateControl.cs
- IteratorFilter.cs
- DataGridViewLayoutData.cs
- RelationshipFixer.cs
- PenContexts.cs
- CustomExpressionEventArgs.cs
- DataMemberAttribute.cs
- DynamicDataRoute.cs
- DSACryptoServiceProvider.cs
- DbProviderFactoriesConfigurationHandler.cs
- Win32SafeHandles.cs
- SparseMemoryStream.cs
- CustomSignedXml.cs
- StubHelpers.cs
- GridViewSelectEventArgs.cs
- XmlSerializationReader.cs
- Image.cs
- PrivilegedConfigurationManager.cs
- FaultDesigner.cs
- RawStylusInputReport.cs
- CodePrimitiveExpression.cs
- PermissionRequestEvidence.cs
- AssociationProvider.cs
- SslStream.cs
- XmlSchemaSimpleTypeList.cs
- XComponentModel.cs
- XamlSerializationHelper.cs
- Semaphore.cs
- Timer.cs
- ControlBindingsConverter.cs
- AssemblyBuilder.cs
- ListViewItem.cs
- UpdateTracker.cs
- DataGridViewButtonColumn.cs
- UTF32Encoding.cs
- unitconverter.cs
- PropertyContainer.cs
- Timeline.cs
- FreezableOperations.cs
- SafeArrayRankMismatchException.cs
- WebReferencesBuildProvider.cs
- RouteData.cs
- SqlCachedBuffer.cs
- HitTestWithPointDrawingContextWalker.cs
- ObjectParameterCollection.cs
- Matrix3D.cs
- ForEach.cs
- NameScopePropertyAttribute.cs
- SchemaContext.cs
- SqlServer2KCompatibilityCheck.cs