Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / 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. //------------------------------------------------------------------------------ //// 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
- PerformanceCountersElement.cs
- StateInitialization.cs
- SchemaTableOptionalColumn.cs
- AnnotationResource.cs
- CharacterBufferReference.cs
- CollectionBase.cs
- DataIdProcessor.cs
- MetadataCache.cs
- SamlAuthenticationStatement.cs
- LinqMaximalSubtreeNominator.cs
- StoreContentChangedEventArgs.cs
- TextElementAutomationPeer.cs
- PowerStatus.cs
- SerializerWriterEventHandlers.cs
- ItemChangedEventArgs.cs
- UIHelper.cs
- ClientFormsAuthenticationCredentials.cs
- HttpClientCertificate.cs
- IntSecurity.cs
- Form.cs
- SmiEventSink.cs
- StringValidatorAttribute.cs
- LiteralControl.cs
- DataBindingList.cs
- TextEditorContextMenu.cs
- SingleTagSectionHandler.cs
- CodeDomDesignerLoader.cs
- AutoGeneratedField.cs
- NativeWrapper.cs
- MiniLockedBorderGlyph.cs
- DbExpressionRules.cs
- initElementDictionary.cs
- ListViewItemSelectionChangedEvent.cs
- AssociativeAggregationOperator.cs
- EntityDataSourceSelectingEventArgs.cs
- DocumentOrderQuery.cs
- IUnknownConstantAttribute.cs
- UnsafeNativeMethods.cs
- TemplateBamlRecordReader.cs
- MessageBox.cs
- MeshGeometry3D.cs
- TimeZoneInfo.cs
- XmlCharacterData.cs
- BulletedList.cs
- CurrentChangingEventArgs.cs
- ProjectionQueryOptionExpression.cs
- HierarchicalDataSourceControl.cs
- ThemeDirectoryCompiler.cs
- CalendarDay.cs
- DataServiceEntityAttribute.cs
- PageFunction.cs
- ForEachAction.cs
- WindowsTreeView.cs
- CommandEventArgs.cs
- StrongNamePublicKeyBlob.cs
- X509LogoTypeExtension.cs
- ResolveCriteriaCD1.cs
- TextEndOfParagraph.cs
- HorizontalAlignConverter.cs
- ParseNumbers.cs
- RSAPKCS1SignatureFormatter.cs
- XmlSchemaAll.cs
- OpacityConverter.cs
- ErrorReporting.cs
- ScrollableControlDesigner.cs
- OwnerDrawPropertyBag.cs
- NotifyParentPropertyAttribute.cs
- ResourceDisplayNameAttribute.cs
- UnmanagedBitmapWrapper.cs
- FilterableAttribute.cs
- MenuCommand.cs
- SerializationInfoEnumerator.cs
- SHA256Managed.cs
- ZipIOCentralDirectoryBlock.cs
- ToolboxBitmapAttribute.cs
- ShaderRenderModeValidation.cs
- ManipulationPivot.cs
- RoutingChannelExtension.cs
- ExternalException.cs
- ClientFormsIdentity.cs
- GeneralTransform2DTo3D.cs
- StringDictionaryEditor.cs
- RequestCacheEntry.cs
- XmlMembersMapping.cs
- AssemblyCollection.cs
- Size3D.cs
- WpfPayload.cs
- SchemaImporter.cs
- HostUtils.cs
- util.cs
- RegistryConfigurationProvider.cs
- NonClientArea.cs
- UiaCoreApi.cs
- MessageQueuePermissionAttribute.cs
- TextEditorParagraphs.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- RewritingValidator.cs
- ListViewDeletedEventArgs.cs
- RotationValidation.cs
- TextParagraphProperties.cs