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
- PlainXmlSerializer.cs
- JsonReaderDelegator.cs
- ValueQuery.cs
- StringConverter.cs
- Point.cs
- SystemUdpStatistics.cs
- SQLDateTimeStorage.cs
- InputLangChangeRequestEvent.cs
- ListViewItem.cs
- LowerCaseStringConverter.cs
- XmlTextAttribute.cs
- __TransparentProxy.cs
- ExpressionTextBox.xaml.cs
- OleStrCAMarshaler.cs
- DbUpdateCommandTree.cs
- SecurityProtocolCorrelationState.cs
- EventsTab.cs
- BindingGroup.cs
- SpecialNameAttribute.cs
- PropertyNames.cs
- WindowsFormsLinkLabel.cs
- Line.cs
- ButtonField.cs
- DependentList.cs
- SByteConverter.cs
- DifferencingCollection.cs
- MemoryRecordBuffer.cs
- DropShadowEffect.cs
- HtmlTableRow.cs
- EventDrivenDesigner.cs
- WsdlBuildProvider.cs
- DelegateTypeInfo.cs
- Button.cs
- Qualifier.cs
- SqlBulkCopy.cs
- WebServiceMethodData.cs
- MouseGestureConverter.cs
- EncoderReplacementFallback.cs
- DataGridViewLinkColumn.cs
- WebPartCatalogAddVerb.cs
- Int32RectValueSerializer.cs
- ScriptComponentDescriptor.cs
- _ConnectionGroup.cs
- PrintPreviewControl.cs
- MediaSystem.cs
- InputElement.cs
- FixedSOMGroup.cs
- RadioButtonBaseAdapter.cs
- ReadOnlyCollectionBase.cs
- MouseActionValueSerializer.cs
- ErrorReporting.cs
- AttributeUsageAttribute.cs
- TemplateParser.cs
- Typeface.cs
- HashCryptoHandle.cs
- AdapterUtil.cs
- NetworkInformationException.cs
- PermissionListSet.cs
- SmtpMail.cs
- SchemaTableColumn.cs
- _TLSstream.cs
- DoubleCollectionConverter.cs
- ErrorTableItemStyle.cs
- Brush.cs
- ImageMetadata.cs
- XmlWrappingReader.cs
- GuidelineCollection.cs
- SqlErrorCollection.cs
- EncodingTable.cs
- PatternMatcher.cs
- NativeMethodsOther.cs
- NonceToken.cs
- BrushMappingModeValidation.cs
- WinHttpWebProxyFinder.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- TimelineGroup.cs
- XmlResolver.cs
- WeakReferenceKey.cs
- SqlCaseSimplifier.cs
- WorkflowQueue.cs
- TraceHandlerErrorFormatter.cs
- GacUtil.cs
- MessageBox.cs
- XpsTokenContext.cs
- AppDomainInstanceProvider.cs
- AutomationProperty.cs
- IndicCharClassifier.cs
- GridProviderWrapper.cs
- ImageSource.cs
- HtmlInputRadioButton.cs
- WindowsFont.cs
- SchemaImporterExtensionElement.cs
- EncoderReplacementFallback.cs
- ScriptingSectionGroup.cs
- XhtmlBasicListAdapter.cs
- XhtmlBasicPanelAdapter.cs
- ValidationVisibilityAttribute.cs
- EntityDataSourceState.cs
- SelectedCellsChangedEventArgs.cs
- TextAdaptor.cs