Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / Annotations / LocatorBase.cs / 1 / LocatorBase.cs
//------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // ContentLocatorBase represents an object that identifies a piece of data. It // can be an ordered list of ContentLocatorParts (in which case its a // ContentLocator) or it can be a set of Locators (in which case its a // ContentLocatorGroup). // // Spec: http://team/sites/ag/Specifications/Simplifying%20Store%20Cache%20Model.doc // // History: // 10/04/2002: rruiz: Added header comment to ObjectModel.cs // 07/03/2003: magedz: Renamed Link, LinkSequence to LocatorPart and Locator // respectively. // 05/31/2003: LGolding: Ported to WCP tree. // 07/15/2003: rruiz: Rewrote implementations to extend abstract classes // instead of implement interfaces; got rid of obsolete // classes; put each class in separate file. // 12/09/2003: ssimova: Added Id property // 12/03/2003: ssimova: Changed LocatorParts to Parts // 06/20/2004: rruiz: Stripped out most of the API and made this an abstract // class which supports notifying its owner of changes. // New concrete classes were introduced for sets and // sequences. //----------------------------------------------------------------------------- using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Xml; using MS.Internal.Annotations; namespace System.Windows.Annotations { ////// ContentLocatorBase represents an object that identifies a piece of data. /// It can be an ordered list of ContentLocatorParts (in which case its a /// ContentLocator) or it can be a set of Locators (in which case its a ContentLocatorGroup). /// public abstract class ContentLocatorBase : INotifyPropertyChanged2, IOwnedObject { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Internal constructor. This makes the abstract class /// unsubclassable by third-parties, as desired. /// internal ContentLocatorBase() { } #endregion Constructors //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- #region Public Methods ////// Create a deep clone of this ContentLocatorBase. /// ///a deep clone of this ContentLocatorBase; never returns null public abstract object Clone(); #endregion Public Methods //------------------------------------------------------ // // Public Operators // //------------------------------------------------------ //----------------------------------------------------- // // Public Events // //------------------------------------------------------ //----------------------------------------------------- // // Public Properties // //----------------------------------------------------- //----------------------------------------------------- // // Internal Events // //------------------------------------------------------ #region Public Events ////// /// event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged { add{ _propertyChanged += value; } remove{ _propertyChanged -= value; } } #endregion Public Events //----------------------------------------------------- // // Internal Methods // //------------------------------------------------------ #region Internal Methods ////// Notify the owner this ContentLocatorBase has changed. /// This method should be protected so only subclasses /// could call it but that would expose it in the /// public API space so we keep it internal. /// internal void FireLocatorChanged(string name) { if (_propertyChanged != null) { _propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(name)); } } ////// bool IOwnedObject.Owned { get { return _owned; } set { _owned = value; } } ////// Internal Merge method used by the LocatorManager as it builds up /// Locators. We don't expose these methods publicly because they /// are of little use and are optimized for use by the LM (e.g., we /// know the arguments aren't owned by anyone and can be modified in /// place). /// /// the ContentLocatorBase to merge ///the resulting ContentLocatorBase (may be the same object the method /// was called on for perf reasons) internal abstract ContentLocatorBase Merge(ContentLocatorBase other); #endregion Internal Methods //------------------------------------------------------ // // Private Fields // //----------------------------------------------------- #region Private Fields ////// private bool _owned; ////// /// private event PropertyChangedEventHandler _propertyChanged; #endregion Private Fields } } // 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. // // // Description: // ContentLocatorBase represents an object that identifies a piece of data. It // can be an ordered list of ContentLocatorParts (in which case its a // ContentLocator) or it can be a set of Locators (in which case its a // ContentLocatorGroup). // // Spec: http://team/sites/ag/Specifications/Simplifying%20Store%20Cache%20Model.doc // // History: // 10/04/2002: rruiz: Added header comment to ObjectModel.cs // 07/03/2003: magedz: Renamed Link, LinkSequence to LocatorPart and Locator // respectively. // 05/31/2003: LGolding: Ported to WCP tree. // 07/15/2003: rruiz: Rewrote implementations to extend abstract classes // instead of implement interfaces; got rid of obsolete // classes; put each class in separate file. // 12/09/2003: ssimova: Added Id property // 12/03/2003: ssimova: Changed LocatorParts to Parts // 06/20/2004: rruiz: Stripped out most of the API and made this an abstract // class which supports notifying its owner of changes. // New concrete classes were introduced for sets and // sequences. //----------------------------------------------------------------------------- using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Xml; using MS.Internal.Annotations; namespace System.Windows.Annotations { ////// ContentLocatorBase represents an object that identifies a piece of data. /// It can be an ordered list of ContentLocatorParts (in which case its a /// ContentLocator) or it can be a set of Locators (in which case its a ContentLocatorGroup). /// public abstract class ContentLocatorBase : INotifyPropertyChanged2, IOwnedObject { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Internal constructor. This makes the abstract class /// unsubclassable by third-parties, as desired. /// internal ContentLocatorBase() { } #endregion Constructors //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- #region Public Methods ////// Create a deep clone of this ContentLocatorBase. /// ///a deep clone of this ContentLocatorBase; never returns null public abstract object Clone(); #endregion Public Methods //------------------------------------------------------ // // Public Operators // //------------------------------------------------------ //----------------------------------------------------- // // Public Events // //------------------------------------------------------ //----------------------------------------------------- // // Public Properties // //----------------------------------------------------- //----------------------------------------------------- // // Internal Events // //------------------------------------------------------ #region Public Events ////// /// event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged { add{ _propertyChanged += value; } remove{ _propertyChanged -= value; } } #endregion Public Events //----------------------------------------------------- // // Internal Methods // //------------------------------------------------------ #region Internal Methods ////// Notify the owner this ContentLocatorBase has changed. /// This method should be protected so only subclasses /// could call it but that would expose it in the /// public API space so we keep it internal. /// internal void FireLocatorChanged(string name) { if (_propertyChanged != null) { _propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(name)); } } ////// bool IOwnedObject.Owned { get { return _owned; } set { _owned = value; } } ////// Internal Merge method used by the LocatorManager as it builds up /// Locators. We don't expose these methods publicly because they /// are of little use and are optimized for use by the LM (e.g., we /// know the arguments aren't owned by anyone and can be modified in /// place). /// /// the ContentLocatorBase to merge ///the resulting ContentLocatorBase (may be the same object the method /// was called on for perf reasons) internal abstract ContentLocatorBase Merge(ContentLocatorBase other); #endregion Internal Methods //------------------------------------------------------ // // Private Fields // //----------------------------------------------------- #region Private Fields ////// private bool _owned; ////// /// private event PropertyChangedEventHandler _propertyChanged; #endregion Private Fields } } // 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
- HtmlControlPersistable.cs
- AsnEncodedData.cs
- LogEntryUtils.cs
- UserUseLicenseDictionaryLoader.cs
- IteratorDescriptor.cs
- MetadataAssemblyHelper.cs
- DesignTableCollection.cs
- DocumentPageTextView.cs
- CharacterShapingProperties.cs
- DropSource.cs
- HttpListenerPrefixCollection.cs
- WebPartMinimizeVerb.cs
- TransportReplyChannelAcceptor.cs
- PrinterResolution.cs
- RegionIterator.cs
- Highlights.cs
- SimpleLine.cs
- SafeCryptHandles.cs
- ScriptReference.cs
- DetailsViewModeEventArgs.cs
- ClientUtils.cs
- DbSetClause.cs
- TdsParserHelperClasses.cs
- DecimalFormatter.cs
- AutomationAttributeInfo.cs
- EntitySqlQueryCacheEntry.cs
- CatalogPartCollection.cs
- TimeoutHelper.cs
- NamedObjectList.cs
- CornerRadius.cs
- PropertyChangedEventArgs.cs
- Image.cs
- HostingEnvironmentException.cs
- WebControlParameterProxy.cs
- AudioLevelUpdatedEventArgs.cs
- FilteredSchemaElementLookUpTable.cs
- AutoGeneratedField.cs
- FileDocument.cs
- Aes.cs
- TextEncodedRawTextWriter.cs
- CacheForPrimitiveTypes.cs
- TextureBrush.cs
- SqlDataSourceStatusEventArgs.cs
- PageAsyncTaskManager.cs
- Int64Storage.cs
- TheQuery.cs
- WizardStepBase.cs
- EventlogProvider.cs
- SubpageParaClient.cs
- OutputCacheModule.cs
- PauseStoryboard.cs
- UpDownBaseDesigner.cs
- SafeFindHandle.cs
- MetadataCacheItem.cs
- TextElementCollection.cs
- UiaCoreApi.cs
- BoolExpr.cs
- Span.cs
- SystemGatewayIPAddressInformation.cs
- FormsIdentity.cs
- CharUnicodeInfo.cs
- Stackframe.cs
- OleDbReferenceCollection.cs
- TypeToArgumentTypeConverter.cs
- ColorAnimationBase.cs
- DataGridViewControlCollection.cs
- MutexSecurity.cs
- ImportContext.cs
- basenumberconverter.cs
- DataControlPagerLinkButton.cs
- Trace.cs
- UiaCoreProviderApi.cs
- TypeForwardedToAttribute.cs
- SqlNotificationRequest.cs
- FontConverter.cs
- EventArgs.cs
- MaskedTextBoxTextEditorDropDown.cs
- TextReader.cs
- ThicknessConverter.cs
- SocketElement.cs
- Label.cs
- HScrollBar.cs
- XmlReaderSettings.cs
- WebZone.cs
- AttachmentCollection.cs
- ManipulationDeltaEventArgs.cs
- ShimAsPublicXamlType.cs
- autovalidator.cs
- SocketException.cs
- TypeElement.cs
- PriorityBinding.cs
- ObjectItemNoOpAssemblyLoader.cs
- Transform3DGroup.cs
- PropertyPathConverter.cs
- InstanceLockQueryResult.cs
- XPathCompileException.cs
- UserMapPath.cs
- ConnectionsZoneAutoFormat.cs
- DateBoldEvent.cs
- CompilerCollection.cs