Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Base / System / Windows / Markup / Primitives / MarkupProperty.cs / 1 / MarkupProperty.cs
//------------------------------------------------------------------------
//
// Microsoft Windows Client Platform
// Copyright (C) Microsoft Corporation, 2005
//
// File: MarkupProperty.cs
//
// Contents: API for iterating a tree of objects for serialization
//
// Created: 04/28/2005 [....]
//
//-----------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Collections;
using System.Reflection;
using System.Text;
using System.Windows;
using MS.Internal.WindowsBase;
namespace System.Windows.Markup.Primitives
{
///
/// A property description used by serialiation to encapsulate access to properties and their values. A property is
/// either representable as a string or a list of items. If the property can be respresented as a string
/// IsComposite is false, otherwise, if IsComposite is true, the property is a list of items.
///
public abstract class MarkupProperty
{
///
/// Prevent external specialization
///
[FriendAccessAllowed] // Used by MarkupPropertyWrapper
internal MarkupProperty() { }
///
/// A name sutible for diagnostics and error reporting. A serializer should not use this value. It should use
/// the PropertyDescriptor and/or DependencyProperty instead.
///
public abstract string Name { get; }
///
/// The type of the property.
///
public abstract Type PropertyType { get; }
///
/// whether the property type is a collection or not
///
internal bool IsCollectionProperty
{
get
{
Type propertyType = PropertyType;
return (typeof(IList).IsAssignableFrom(propertyType) ||
typeof(IDictionary).IsAssignableFrom(propertyType) ||
propertyType.IsArray);
}
}
///
/// The property descriptor for the markup property if this property is associated with a CLR property.
///
public virtual PropertyDescriptor PropertyDescriptor { get { return null; } }
///
/// The dependency property for the markup property if this property is backed by a DependencyProperty.
///
public virtual DependencyProperty DependencyProperty { get { return null; } }
///
/// Returns true when this propety is an attached dependency property. When true, PropertyDescriptor
/// can be null (but is not required to be) and DependencyProperty is not null.
///
public virtual bool IsAttached { get { return false; } }
///
/// Returns true when this property represents a constructor argument. When true, PropertyDescriptor and
/// DependencyProperty are both null. XAML only uses this for represnting the constructor parameters of
/// MarkupExtension instances.
///
public virtual bool IsConstructorArgument { get { return false; } }
///
/// Returns true when this property represents the text to pass to the type's ValueConverter to create an
/// instance instead of using a constructor. When true, PropertyDescriptor and DependencyProperty are both
/// null. If a property is provided through MarkupItem.Properties that has this value set to true it is the
/// only property the type will provide.
///
public virtual bool IsValueAsString { get { return false; } }
///
/// Returns true when this property represents direct content of a collection (or dictionary) class. When true,
/// PropertyDescriptor and DependencyProperty are both null.
///
public virtual bool IsContent { get { return false; } }
///
/// Returns true when the property represents the key used by the MarkupItem's container to store the item in a
/// dictionary. When true, the PropertyDescriptor and DependencyProperty will return null. XAML will emit this
/// as an x:Key attribute.
///
public virtual bool IsKey { get { return false; } }
///
/// If IsComposite is false Value and StringValue are valid to call, the property can be represented as a
/// string. If is true, Items is valid to use and the property is one or more items. If the property is
/// composite but has not items, the property isn't returned by MarkupItem.GetProperties.
///
public virtual bool IsComposite { get { return false; } }
///
/// The current value of the property.
///
public abstract object Value { get; }
///
/// The string value of the property using ValueSerializer classes when appropriate to convert the value to a
/// string. Which ValueSerializer to invoke is determined by the IValueSerializerContext of the MarkupItem that
/// returned this MarkupProperty.
///
public abstract string StringValue { get; }
///
/// The list of types that this property will reference when it serializes its value as a string. This allows
/// a serializer to ensure that the de-serializer has enough information to convert references to these type
/// from the string representations. For example, ensuring there is an xmlns declaration for the XML namespace
/// that defines the type.
///
public abstract IEnumerable TypeReferences { get; }
///
/// Enumerate the items that make up the value of this property. If the property is not an enumeration, this
/// will only be one item in the enumeration. If the property is an enumeration (or enumerable) then all the
/// items will be returned. At least one will always be returned since it MarkupItem will not create a
/// MarkupProperty for properties with no items.
///
public abstract IEnumerable Items { get; }
///
/// The attributes associated with the markup property.
///
public abstract AttributeCollection Attributes { get; }
///
/// Checks to see that each markup object is of a public type. Used in serialization.
///
internal virtual void VerifyOnlySerializableTypes() { }
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------
//
// Microsoft Windows Client Platform
// Copyright (C) Microsoft Corporation, 2005
//
// File: MarkupProperty.cs
//
// Contents: API for iterating a tree of objects for serialization
//
// Created: 04/28/2005 [....]
//
//-----------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Collections;
using System.Reflection;
using System.Text;
using System.Windows;
using MS.Internal.WindowsBase;
namespace System.Windows.Markup.Primitives
{
///
/// A property description used by serialiation to encapsulate access to properties and their values. A property is
/// either representable as a string or a list of items. If the property can be respresented as a string
/// IsComposite is false, otherwise, if IsComposite is true, the property is a list of items.
///
public abstract class MarkupProperty
{
///
/// Prevent external specialization
///
[FriendAccessAllowed] // Used by MarkupPropertyWrapper
internal MarkupProperty() { }
///
/// A name sutible for diagnostics and error reporting. A serializer should not use this value. It should use
/// the PropertyDescriptor and/or DependencyProperty instead.
///
public abstract string Name { get; }
///
/// The type of the property.
///
public abstract Type PropertyType { get; }
///
/// whether the property type is a collection or not
///
internal bool IsCollectionProperty
{
get
{
Type propertyType = PropertyType;
return (typeof(IList).IsAssignableFrom(propertyType) ||
typeof(IDictionary).IsAssignableFrom(propertyType) ||
propertyType.IsArray);
}
}
///
/// The property descriptor for the markup property if this property is associated with a CLR property.
///
public virtual PropertyDescriptor PropertyDescriptor { get { return null; } }
///
/// The dependency property for the markup property if this property is backed by a DependencyProperty.
///
public virtual DependencyProperty DependencyProperty { get { return null; } }
///
/// Returns true when this propety is an attached dependency property. When true, PropertyDescriptor
/// can be null (but is not required to be) and DependencyProperty is not null.
///
public virtual bool IsAttached { get { return false; } }
///
/// Returns true when this property represents a constructor argument. When true, PropertyDescriptor and
/// DependencyProperty are both null. XAML only uses this for represnting the constructor parameters of
/// MarkupExtension instances.
///
public virtual bool IsConstructorArgument { get { return false; } }
///
/// Returns true when this property represents the text to pass to the type's ValueConverter to create an
/// instance instead of using a constructor. When true, PropertyDescriptor and DependencyProperty are both
/// null. If a property is provided through MarkupItem.Properties that has this value set to true it is the
/// only property the type will provide.
///
public virtual bool IsValueAsString { get { return false; } }
///
/// Returns true when this property represents direct content of a collection (or dictionary) class. When true,
/// PropertyDescriptor and DependencyProperty are both null.
///
public virtual bool IsContent { get { return false; } }
///
/// Returns true when the property represents the key used by the MarkupItem's container to store the item in a
/// dictionary. When true, the PropertyDescriptor and DependencyProperty will return null. XAML will emit this
/// as an x:Key attribute.
///
public virtual bool IsKey { get { return false; } }
///
/// If IsComposite is false Value and StringValue are valid to call, the property can be represented as a
/// string. If is true, Items is valid to use and the property is one or more items. If the property is
/// composite but has not items, the property isn't returned by MarkupItem.GetProperties.
///
public virtual bool IsComposite { get { return false; } }
///
/// The current value of the property.
///
public abstract object Value { get; }
///
/// The string value of the property using ValueSerializer classes when appropriate to convert the value to a
/// string. Which ValueSerializer to invoke is determined by the IValueSerializerContext of the MarkupItem that
/// returned this MarkupProperty.
///
public abstract string StringValue { get; }
///
/// The list of types that this property will reference when it serializes its value as a string. This allows
/// a serializer to ensure that the de-serializer has enough information to convert references to these type
/// from the string representations. For example, ensuring there is an xmlns declaration for the XML namespace
/// that defines the type.
///
public abstract IEnumerable TypeReferences { get; }
///
/// Enumerate the items that make up the value of this property. If the property is not an enumeration, this
/// will only be one item in the enumeration. If the property is an enumeration (or enumerable) then all the
/// items will be returned. At least one will always be returned since it MarkupItem will not create a
/// MarkupProperty for properties with no items.
///
public abstract IEnumerable Items { get; }
///
/// The attributes associated with the markup property.
///
public abstract AttributeCollection Attributes { get; }
///
/// Checks to see that each markup object is of a public type. Used in serialization.
///
internal virtual void VerifyOnlySerializableTypes() { }
}
}
// 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
- ListViewContainer.cs
- TransformerInfoCollection.cs
- ListItemCollection.cs
- XsltOutput.cs
- TimeZone.cs
- HttpResponse.cs
- ExtenderProviderService.cs
- NumericUpDownAccelerationCollection.cs
- EnumerableCollectionView.cs
- WebUtility.cs
- NumericUpDownAcceleration.cs
- TransactionCache.cs
- Choices.cs
- RuleSettings.cs
- ApplicationSecurityInfo.cs
- PageCodeDomTreeGenerator.cs
- CompilerError.cs
- ReaderContextStackData.cs
- DataSetMappper.cs
- XslCompiledTransform.cs
- EntityTemplateFactory.cs
- ZipArchive.cs
- BitSet.cs
- SortedDictionary.cs
- CompilerParameters.cs
- sqlpipe.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- TypeDefinition.cs
- InputScopeAttribute.cs
- XamlGridLengthSerializer.cs
- PropertiesTab.cs
- BinaryMessageEncodingBindingElement.cs
- GroupBoxAutomationPeer.cs
- MetadataAssemblyHelper.cs
- OutKeywords.cs
- XmlSerializationWriter.cs
- CustomAttributeFormatException.cs
- StaticResourceExtension.cs
- XamlStream.cs
- XmlUtil.cs
- ServiceInfo.cs
- IndependentlyAnimatedPropertyMetadata.cs
- AdvancedBindingEditor.cs
- NativeMethods.cs
- basemetadatamappingvisitor.cs
- GridViewRowCollection.cs
- SqlConnectionFactory.cs
- HostExecutionContextManager.cs
- EventRoute.cs
- AnonymousIdentificationModule.cs
- VisualState.cs
- FixedTextView.cs
- DES.cs
- BookmarkTable.cs
- TimeSpanValidatorAttribute.cs
- XMLUtil.cs
- TextTreeTextNode.cs
- userdatakeys.cs
- Control.cs
- ComponentDispatcher.cs
- DataGridColumnHeadersPresenter.cs
- ObjectConverter.cs
- DesignerAttribute.cs
- Configuration.cs
- ErrorRuntimeConfig.cs
- _SingleItemRequestCache.cs
- PathSegment.cs
- CompositionTarget.cs
- RenamedEventArgs.cs
- JumpPath.cs
- CryptoApi.cs
- OleDbStruct.cs
- GeometryCollection.cs
- StorageInfo.cs
- DragEvent.cs
- TrustLevel.cs
- MethodMessage.cs
- SchemaNames.cs
- WebMethodAttribute.cs
- SimpleApplicationHost.cs
- DataGridViewRowHeaderCell.cs
- Statements.cs
- MenuItemBinding.cs
- QilInvokeLateBound.cs
- UICuesEvent.cs
- BitVec.cs
- HtmlInputReset.cs
- AppSettings.cs
- BinaryWriter.cs
- RowCache.cs
- CryptoConfig.cs
- MetadataFile.cs
- ManagementDateTime.cs
- ConfigurationStrings.cs
- XMLSyntaxException.cs
- OleAutBinder.cs
- DataGridViewHeaderCell.cs
- StorageBasedPackageProperties.cs
- FamilyMapCollection.cs
- XmlSchemaAttributeGroup.cs