Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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;
}
}
///
/// Indicates the allowed child control type.
/// This property is read-only.
///
public Type ChildControlType {
get {
if (_childControlType == null) {
return typeof(System.Web.UI.Control);
}
return _childControlType;
}
}
///
///
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;
}
}
///
/// Indicates the allowed child control type.
/// This property is read-only.
///
public Type ChildControlType {
get {
if (_childControlType == null) {
return typeof(System.Web.UI.Control);
}
return _childControlType;
}
}
///
///
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
- NotSupportedException.cs
- TrackingMemoryStreamFactory.cs
- RelationshipEndCollection.cs
- StateChangeEvent.cs
- GregorianCalendar.cs
- ParsedAttributeCollection.cs
- DesignTimeType.cs
- CacheVirtualItemsEvent.cs
- COM2ICategorizePropertiesHandler.cs
- GridViewCommandEventArgs.cs
- TextDpi.cs
- AdCreatedEventArgs.cs
- Resources.Designer.cs
- TransactionFilter.cs
- ExtensionSimplifierMarkupObject.cs
- AxImporter.cs
- HostExecutionContextManager.cs
- SqlServer2KCompatibilityCheck.cs
- DataKey.cs
- TextElementEnumerator.cs
- FigureParaClient.cs
- RectAnimationUsingKeyFrames.cs
- UserControlCodeDomTreeGenerator.cs
- DbParameterHelper.cs
- ControlBuilderAttribute.cs
- Point4D.cs
- PassportPrincipal.cs
- DefaultAsyncDataDispatcher.cs
- UserControl.cs
- ObjectViewEntityCollectionData.cs
- WrapperEqualityComparer.cs
- HtmlForm.cs
- NamedPermissionSet.cs
- NTAccount.cs
- BufferedGraphicsManager.cs
- TextStore.cs
- WebServicesSection.cs
- BasicExpressionVisitor.cs
- DataGridToolTip.cs
- CompilerGeneratedAttribute.cs
- HtmlImage.cs
- ChannelBinding.cs
- SmtpReplyReader.cs
- LineSegment.cs
- Point4DConverter.cs
- DataBinder.cs
- DataGridPagerStyle.cs
- TreeNodeConverter.cs
- Base64Encoding.cs
- FolderLevelBuildProviderCollection.cs
- PeerNameRecord.cs
- Vector3dCollection.cs
- PropertyKey.cs
- _HeaderInfoTable.cs
- ListCollectionView.cs
- QueryResponse.cs
- TypeUsage.cs
- KeyConstraint.cs
- XslAstAnalyzer.cs
- ExpandCollapsePattern.cs
- AccessViolationException.cs
- Expressions.cs
- _SSPISessionCache.cs
- DateTimeFormat.cs
- ContextStack.cs
- ActivityMarkupSerializationProvider.cs
- WorkflowTransactionService.cs
- PersistenceTypeAttribute.cs
- CompatibleIComparer.cs
- FigureParagraph.cs
- SemaphoreSecurity.cs
- XmlCustomFormatter.cs
- DrawTreeNodeEventArgs.cs
- ServicePointManager.cs
- Soap12ProtocolImporter.cs
- DataGridColumnReorderingEventArgs.cs
- TakeQueryOptionExpression.cs
- ElementUtil.cs
- SmiConnection.cs
- EventSourceCreationData.cs
- IdnMapping.cs
- FtpCachePolicyElement.cs
- XsltCompileContext.cs
- CopyAttributesAction.cs
- Part.cs
- HighContrastHelper.cs
- SiteOfOriginPart.cs
- SqlFlattener.cs
- UpdateProgress.cs
- ObjectCloneHelper.cs
- MessageLoggingElement.cs
- ConnectionPoolManager.cs
- XamlClipboardData.cs
- FixedSOMLineCollection.cs
- SoapInteropTypes.cs
- OrderedDictionary.cs
- SafeNativeMemoryHandle.cs
- ConnectionInterfaceCollection.cs
- SqlNodeAnnotations.cs
- ToolStripSeparatorRenderEventArgs.cs