Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StronglyTypedResourceBuilder.cs
- StaticSiteMapProvider.cs
- TemplateControl.cs
- WebPartMenuStyle.cs
- GenericAuthenticationEventArgs.cs
- HostedElements.cs
- WizardStepBase.cs
- TemplateBaseAction.cs
- InternalResources.cs
- ClientOptions.cs
- NonVisualControlAttribute.cs
- Clock.cs
- ICspAsymmetricAlgorithm.cs
- RegionInfo.cs
- FlowLayoutPanelDesigner.cs
- StorageSetMapping.cs
- UnmanagedMemoryStream.cs
- SafeTokenHandle.cs
- sqlstateclientmanager.cs
- Variant.cs
- SymbolType.cs
- WebRequest.cs
- x509utils.cs
- CommunicationObject.cs
- MetadataItemCollectionFactory.cs
- CharacterString.cs
- SoapAttributes.cs
- BCLDebug.cs
- BindingMAnagerBase.cs
- PrefixQName.cs
- SyncOperationState.cs
- HttpHandlerAction.cs
- FormClosedEvent.cs
- SocketException.cs
- ReverseInheritProperty.cs
- Rect3DConverter.cs
- SecureEnvironment.cs
- ImageFormatConverter.cs
- HttpSocketManager.cs
- CuspData.cs
- Rotation3DAnimation.cs
- TabletDeviceInfo.cs
- SystemInfo.cs
- ServerIdentity.cs
- XmlAttributeCollection.cs
- FocusWithinProperty.cs
- WebRequestModulesSection.cs
- ErrorProvider.cs
- streamingZipPartStream.cs
- CodeFieldReferenceExpression.cs
- RoutingConfiguration.cs
- SimpleBitVector32.cs
- LateBoundBitmapDecoder.cs
- ScrollPatternIdentifiers.cs
- InstanceData.cs
- TableCell.cs
- NavigatingCancelEventArgs.cs
- IDQuery.cs
- HttpServerVarsCollection.cs
- SmiXetterAccessMap.cs
- ImageBrush.cs
- Int32Animation.cs
- RenderingBiasValidation.cs
- ProcessHostServerConfig.cs
- CacheVirtualItemsEvent.cs
- DiagnosticTrace.cs
- WindowsFormsHostPropertyMap.cs
- JsonSerializer.cs
- HostProtectionException.cs
- BitConverter.cs
- AuthenticationSection.cs
- ListCommandEventArgs.cs
- PrePrepareMethodAttribute.cs
- EventLogEntry.cs
- SystemIPInterfaceProperties.cs
- MenuEventArgs.cs
- DataGridViewColumnCollection.cs
- DataGridViewCellValueEventArgs.cs
- CodeNamespaceImportCollection.cs
- OuterGlowBitmapEffect.cs
- FieldAccessException.cs
- CacheSection.cs
- KerberosSecurityTokenAuthenticator.cs
- GeometryDrawing.cs
- TextElementCollectionHelper.cs
- ZipIOExtraField.cs
- SynchronizedInputHelper.cs
- SqlDataRecord.cs
- QuotedPairReader.cs
- RayMeshGeometry3DHitTestResult.cs
- TimeoutValidationAttribute.cs
- SortFieldComparer.cs
- MsmqIntegrationMessageProperty.cs
- NoneExcludedImageIndexConverter.cs
- XappLauncher.cs
- TextLineResult.cs
- Privilege.cs
- FileAuthorizationModule.cs
- ObjectParameterCollection.cs
- CSharpCodeProvider.cs