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
- EventHandlersStore.cs
- Underline.cs
- CustomAttributeSerializer.cs
- Enum.cs
- ObjectRef.cs
- EventLogTraceListener.cs
- DataGridViewComboBoxEditingControl.cs
- SQLDateTimeStorage.cs
- MetadataArtifactLoaderResource.cs
- ExtensionCollection.cs
- TreeViewHitTestInfo.cs
- XPathChildIterator.cs
- KeyedHashAlgorithm.cs
- Rule.cs
- AnnotationAuthorChangedEventArgs.cs
- SSmlParser.cs
- IpcClientChannel.cs
- SimpleApplicationHost.cs
- DispatcherEventArgs.cs
- entityreference_tresulttype.cs
- BitmapImage.cs
- NativeMethods.cs
- Geometry3D.cs
- InfoCardListRequest.cs
- HtmlShimManager.cs
- InvalidAsynchronousStateException.cs
- oledbmetadatacollectionnames.cs
- WindowsScroll.cs
- RoutingExtensionElement.cs
- ByteStack.cs
- XmlSchemaSimpleType.cs
- Utils.cs
- EnumType.cs
- RoutedEventValueSerializer.cs
- ContractComponent.cs
- BitHelper.cs
- CodeGotoStatement.cs
- SafeRightsManagementPubHandle.cs
- SiteMapHierarchicalDataSourceView.cs
- HandleRef.cs
- securitycriticaldata.cs
- CodeFieldReferenceExpression.cs
- SmtpTransport.cs
- Visual3D.cs
- WsatServiceCertificate.cs
- Types.cs
- ListArgumentProvider.cs
- Mutex.cs
- Item.cs
- UnwrappedTypesXmlSerializerManager.cs
- StateInitializationDesigner.cs
- JobInputBins.cs
- MarshalByValueComponent.cs
- IndicCharClassifier.cs
- ListItemCollection.cs
- Clipboard.cs
- Ref.cs
- EmptyCollection.cs
- NonParentingControl.cs
- GenericRootAutomationPeer.cs
- OletxTransactionHeader.cs
- DesignerActionHeaderItem.cs
- DocumentViewerBaseAutomationPeer.cs
- ChangePasswordAutoFormat.cs
- SqlCommand.cs
- CombinedGeometry.cs
- RunWorkerCompletedEventArgs.cs
- RuntimeArgumentHandle.cs
- ObjectIDGenerator.cs
- WmlLiteralTextAdapter.cs
- Int64KeyFrameCollection.cs
- DataGridViewDesigner.cs
- XmlToDatasetMap.cs
- ProfessionalColors.cs
- ToolStripScrollButton.cs
- SqlConnectionFactory.cs
- NavigationProperty.cs
- ErrorFormatterPage.cs
- OraclePermission.cs
- UnsafeNativeMethods.cs
- EtwTrace.cs
- MetadataExporter.cs
- PathFigureCollectionConverter.cs
- AddressHeader.cs
- DecimalStorage.cs
- Encoder.cs
- FixedSOMLineRanges.cs
- MethodSignatureGenerator.cs
- SerializerWriterEventHandlers.cs
- GestureRecognitionResult.cs
- codemethodreferenceexpression.cs
- SafeBuffer.cs
- DataColumnPropertyDescriptor.cs
- ToolboxItemAttribute.cs
- GlyphsSerializer.cs
- DataGridViewButtonColumn.cs
- ClientConvert.cs
- EntityDataSourceValidationException.cs
- AuthorizationRule.cs
- EnumerableRowCollectionExtensions.cs