Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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: [....]/sites/ag/Specifications/Simplifying%20Store%20Cache%20Model.doc // // History: // 10/04/2002: [....]: Added header comment to ObjectModel.cs // 07/03/2003: [....]: Renamed Link, LinkSequence to LocatorPart and Locator // respectively. // 05/31/2003: [....]: Ported to WCP tree. // 07/15/2003: [....]: Rewrote implementations to extend abstract classes // instead of implement interfaces; got rid of obsolete // classes; put each class in separate file. // 12/09/2003: [....]: Added Id property // 12/03/2003: [....]: Changed LocatorParts to Parts // 06/20/2004: [....]: 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
- Barrier.cs
- Cursor.cs
- Int16Storage.cs
- TraceHandlerErrorFormatter.cs
- Rijndael.cs
- CustomErrorCollection.cs
- DefaultParameterValueAttribute.cs
- httpserverutility.cs
- FlowDocumentScrollViewer.cs
- WebControl.cs
- TextBox.cs
- MemberJoinTreeNode.cs
- WebPartConnection.cs
- ObjectDataSourceSelectingEventArgs.cs
- SHA384.cs
- DebugView.cs
- MutexSecurity.cs
- DocumentCollection.cs
- AsymmetricKeyExchangeDeformatter.cs
- ScrollPattern.cs
- SecurityResources.cs
- NetworkStream.cs
- FormViewUpdatedEventArgs.cs
- LogReservationCollection.cs
- DesigntimeLicenseContext.cs
- PageThemeBuildProvider.cs
- TabPanel.cs
- XmlDictionaryWriter.cs
- OdbcDataReader.cs
- BroadcastEventHelper.cs
- GrammarBuilderRuleRef.cs
- Win32SafeHandles.cs
- EntityDataSourceView.cs
- PolyLineSegmentFigureLogic.cs
- MimeParameters.cs
- DataPager.cs
- SoapServerProtocol.cs
- StrokeDescriptor.cs
- MobileControlsSectionHelper.cs
- PartitionerQueryOperator.cs
- ValidationRule.cs
- CompilationUtil.cs
- EncryptionUtility.cs
- ToolStripContentPanelRenderEventArgs.cs
- GetChildSubtree.cs
- LockedHandleGlyph.cs
- ProcessHostMapPath.cs
- PageMediaSize.cs
- ControlUtil.cs
- DataGridViewCell.cs
- FactoryMaker.cs
- SqlErrorCollection.cs
- ReverseInheritProperty.cs
- XmlSchemaDatatype.cs
- WindowsIPAddress.cs
- StylusPointCollection.cs
- ConfigXmlSignificantWhitespace.cs
- SafeFileMappingHandle.cs
- WindowsListViewSubItem.cs
- RootAction.cs
- ListItemConverter.cs
- ConfigXmlReader.cs
- WorkflowView.cs
- PolyBezierSegment.cs
- RangeBase.cs
- ParamArrayAttribute.cs
- DataViewManagerListItemTypeDescriptor.cs
- ClipboardData.cs
- CfgSemanticTag.cs
- ActivityFunc.cs
- CompModSwitches.cs
- ColorConvertedBitmap.cs
- MetafileEditor.cs
- TextTreeTextNode.cs
- MenuItemStyleCollectionEditor.cs
- WeakHashtable.cs
- SqlCommandSet.cs
- MatrixValueSerializer.cs
- DataGridViewCellStyleChangedEventArgs.cs
- PassportAuthenticationModule.cs
- Oid.cs
- ParameterBinding.cs
- AnimationLayer.cs
- WindowsSlider.cs
- InputChannel.cs
- LifetimeServices.cs
- MessageSmuggler.cs
- FrugalList.cs
- _ListenerRequestStream.cs
- DeviceContexts.cs
- StrongNameMembershipCondition.cs
- DateTimePickerDesigner.cs
- ThrowHelper.cs
- PropertyTab.cs
- PerspectiveCamera.cs
- SqlDataSourceConfigureFilterForm.cs
- ColumnWidthChangingEvent.cs
- TrackingMemoryStreamFactory.cs
- ItemChangedEventArgs.cs
- DataStreams.cs