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
- HtmlInputHidden.cs
- ActivityCollectionMarkupSerializer.cs
- HistoryEventArgs.cs
- NamedObject.cs
- ApplicationServicesHostFactory.cs
- Point4DValueSerializer.cs
- StreamGeometry.cs
- EntityCodeGenerator.cs
- Listbox.cs
- CrossSiteScriptingValidation.cs
- XmlQualifiedName.cs
- ImageFormat.cs
- SoapReflectionImporter.cs
- WebContentFormatHelper.cs
- HtmlInputHidden.cs
- IOException.cs
- BitmapEffectCollection.cs
- InfoCardHelper.cs
- DisplayNameAttribute.cs
- NavigationHelper.cs
- TextRangeEditLists.cs
- ErrorHandlingAcceptor.cs
- ParameterModifier.cs
- HebrewCalendar.cs
- ReadWriteControlDesigner.cs
- FileRecordSequenceHelper.cs
- DebugInfo.cs
- ValidationPropertyAttribute.cs
- MSAAEventDispatcher.cs
- WindowsTokenRoleProvider.cs
- EventSourceCreationData.cs
- DataObject.cs
- Hash.cs
- DetailsViewUpdateEventArgs.cs
- ObjectRef.cs
- ElapsedEventArgs.cs
- StorageComplexPropertyMapping.cs
- Process.cs
- TextAnchor.cs
- LicenseException.cs
- XmlWriterSettings.cs
- StorageMappingItemCollection.cs
- XmlDomTextWriter.cs
- DataServiceKeyAttribute.cs
- sortedlist.cs
- XmlILOptimizerVisitor.cs
- IdSpace.cs
- MDIControlStrip.cs
- MetaModel.cs
- DataBindingExpressionBuilder.cs
- FamilyCollection.cs
- WebPartManagerInternals.cs
- XmlAttribute.cs
- InstanceOwnerQueryResult.cs
- MenuItem.cs
- Convert.cs
- TextBoxLine.cs
- PerformanceCounterCategory.cs
- GridViewUpdateEventArgs.cs
- DataMemberFieldEditor.cs
- ArrayElementGridEntry.cs
- WindowHideOrCloseTracker.cs
- DataGridViewCellCancelEventArgs.cs
- XmlName.cs
- InstalledFontCollection.cs
- QueryReaderSettings.cs
- BitmapCodecInfo.cs
- MappingSource.cs
- StyleCollection.cs
- DbTransaction.cs
- Span.cs
- DbConnectionOptions.cs
- _emptywebproxy.cs
- AnonymousIdentificationModule.cs
- SqlConnectionString.cs
- List.cs
- SafeCancelMibChangeNotify.cs
- MediaPlayer.cs
- SqlDataAdapter.cs
- ObjectViewFactory.cs
- TransactionChannel.cs
- LocatorManager.cs
- EntityDataSourceState.cs
- CodeComment.cs
- SQLBoolean.cs
- XmlUTF8TextReader.cs
- Assert.cs
- TileBrush.cs
- MediaTimeline.cs
- ZipIOLocalFileBlock.cs
- DataServiceHost.cs
- HandlerBase.cs
- AssemblyName.cs
- TemplateKeyConverter.cs
- ProjectionPath.cs
- CodeExpressionCollection.cs
- Model3D.cs
- ImageListStreamer.cs
- RIPEMD160Managed.cs
- GZipDecoder.cs