Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / Windows / Markup / Primitives / MarkupObject.cs / 1305600 / MarkupObject.cs
//------------------------------------------------------------------------
//
// Microsoft Windows Client Platform
// Copyright (C) Microsoft Corporation, 2005
//
// File: MarkupObject.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.Reflection;
using System.Text;
using System.Windows.Markup;
using MS.Internal.WindowsBase;
namespace System.Windows.Markup.Primitives
{
///
/// An enumeration class used by serialization to walk the a tree of objects. Markupobject's represent objects
/// and using XML based serialization they would be written as elements.
///
public abstract class MarkupObject
{
///
/// Prevent external specialization
///
[FriendAccessAllowed] // Used by ElementMarkupObject and others in Framework
internal MarkupObject() { }
///
/// The CLR type for the object. For example, an item representing a Button would return the equivilient of
/// typeof(System.Windows.Button).
///
public abstract Type ObjectType { get; }
///
/// The instance of the object represented by the this MarkupObject. The type of the object might not be
/// ObjectType if the instance represents a factory creating instances of type ObjectType.
///
public abstract object Instance { get; }
///
/// An enumeration the items properties. Only properties that have significant (serializable) properties are
/// returned. Properties that have their default value, or are otherwise not visible to serialization, are not
/// returned.
///
/// The first 0 to N properties returned by the Properties enumeration might have the IsConstructorArgument
/// set. These properties should be used as the parameters to the ItemType's constructor with N parameters. If
/// the first property doesn't have the IsConstructorArgument set, the default constructor of the ItemType
/// should be used.
///
/// If the MarkupItem is in a dictionary, one of the properties of the item will have an IsKey set to true.
/// This is the value for the dictionary key.
///
public virtual IEnumerable Properties { get { return GetProperties(true /*mapToConstructorArgs*/); } }
internal abstract IEnumerable GetProperties(bool mapToConstructorArgs);
///
/// Assigns a root context to use for ValueSerializer's that are used to return, for example, the string value
/// of a property or key. All value serializaers will be looked up via this context if present.
///
///
/// The context that will be passed to ValueSerializer's and TypeConverter's when converting text to a string
///
public abstract void AssignRootContext(IValueSerializerContext context);
///
/// The attributes associated with the markup item.
///
public abstract AttributeCollection Attributes { get; }
}
}
// 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: MarkupObject.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.Reflection;
using System.Text;
using System.Windows.Markup;
using MS.Internal.WindowsBase;
namespace System.Windows.Markup.Primitives
{
///
/// An enumeration class used by serialization to walk the a tree of objects. Markupobject's represent objects
/// and using XML based serialization they would be written as elements.
///
public abstract class MarkupObject
{
///
/// Prevent external specialization
///
[FriendAccessAllowed] // Used by ElementMarkupObject and others in Framework
internal MarkupObject() { }
///
/// The CLR type for the object. For example, an item representing a Button would return the equivilient of
/// typeof(System.Windows.Button).
///
public abstract Type ObjectType { get; }
///
/// The instance of the object represented by the this MarkupObject. The type of the object might not be
/// ObjectType if the instance represents a factory creating instances of type ObjectType.
///
public abstract object Instance { get; }
///
/// An enumeration the items properties. Only properties that have significant (serializable) properties are
/// returned. Properties that have their default value, or are otherwise not visible to serialization, are not
/// returned.
///
/// The first 0 to N properties returned by the Properties enumeration might have the IsConstructorArgument
/// set. These properties should be used as the parameters to the ItemType's constructor with N parameters. If
/// the first property doesn't have the IsConstructorArgument set, the default constructor of the ItemType
/// should be used.
///
/// If the MarkupItem is in a dictionary, one of the properties of the item will have an IsKey set to true.
/// This is the value for the dictionary key.
///
public virtual IEnumerable Properties { get { return GetProperties(true /*mapToConstructorArgs*/); } }
internal abstract IEnumerable GetProperties(bool mapToConstructorArgs);
///
/// Assigns a root context to use for ValueSerializer's that are used to return, for example, the string value
/// of a property or key. All value serializaers will be looked up via this context if present.
///
///
/// The context that will be passed to ValueSerializer's and TypeConverter's when converting text to a string
///
public abstract void AssignRootContext(IValueSerializerContext context);
///
/// The attributes associated with the markup item.
///
public abstract AttributeCollection Attributes { get; }
}
}
// 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
- SynchronizedRandom.cs
- BooleanSwitch.cs
- EntityDataSourceStatementEditorForm.cs
- WeakEventTable.cs
- PolicyManager.cs
- GroupDescription.cs
- PixelFormats.cs
- UnsafeNetInfoNativeMethods.cs
- MsdtcWrapper.cs
- SqlStatistics.cs
- TextProperties.cs
- PageThemeCodeDomTreeGenerator.cs
- PropertyEmitter.cs
- DynamicRendererThreadManager.cs
- RelationshipEndCollection.cs
- SettingsSection.cs
- ToolboxItemFilterAttribute.cs
- HtmlTitle.cs
- ProtocolsConfigurationHandler.cs
- DomainUpDown.cs
- UsernameTokenFactoryCredential.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- DataServiceHostFactory.cs
- GridViewCommandEventArgs.cs
- Model3D.cs
- BufferedStream.cs
- Soap11ServerProtocol.cs
- BindingCollection.cs
- SchemaTypeEmitter.cs
- IProducerConsumerCollection.cs
- BuildProvider.cs
- IList.cs
- SecurityTokenValidationException.cs
- PropertyCondition.cs
- SqlInternalConnectionTds.cs
- safelinkcollection.cs
- DataErrorValidationRule.cs
- EventProvider.cs
- SyndicationDeserializer.cs
- ValidatorAttribute.cs
- PermissionRequestEvidence.cs
- ContextMenuService.cs
- CipherData.cs
- DrawingDrawingContext.cs
- ExpanderAutomationPeer.cs
- DetailsView.cs
- CharAnimationUsingKeyFrames.cs
- DataTableExtensions.cs
- AttachedPropertyMethodSelector.cs
- StateChangeEvent.cs
- Operator.cs
- PageClientProxyGenerator.cs
- Char.cs
- HttpAsyncResult.cs
- DateBoldEvent.cs
- Timer.cs
- ToolStripItemCollection.cs
- FontInfo.cs
- SerializerWriterEventHandlers.cs
- DataGridViewToolTip.cs
- ExtenderProvidedPropertyAttribute.cs
- Console.cs
- TypeUtils.cs
- XPathNavigator.cs
- ProcessThreadCollection.cs
- __Error.cs
- AxDesigner.cs
- MemberDescriptor.cs
- StackSpiller.Bindings.cs
- IntellisenseTextBox.cs
- CollectionDataContractAttribute.cs
- WebPartConnectionsConfigureVerb.cs
- TransactionContextValidator.cs
- EventMappingSettingsCollection.cs
- ShadowGlyph.cs
- ZipIOExtraFieldElement.cs
- SqlDataSourceSelectingEventArgs.cs
- XsltException.cs
- updateconfighost.cs
- JsonReaderWriterFactory.cs
- LabelAutomationPeer.cs
- Panel.cs
- PolicyVersion.cs
- DataGridViewSelectedRowCollection.cs
- DesignerSerializerAttribute.cs
- FileDialog.cs
- ProgressBarAutomationPeer.cs
- PixelFormats.cs
- InternalConfigConfigurationFactory.cs
- PersonalizationStateInfoCollection.cs
- ZoneButton.cs
- ClientSideProviderDescription.cs
- InputScope.cs
- CheckBoxStandardAdapter.cs
- VersionedStreamOwner.cs
- PlainXmlSerializer.cs
- AutomationProperties.cs
- EntityDataSourceConfigureObjectContext.cs
- SynchronizedDispatch.cs
- DataObjectAttribute.cs