//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ namespace System.ComponentModel.Design.Serialization { using System.Collections; /// /// This interface may be optionally implemented by the designer loader to provide /// load services to outside components. It provides support for asynchronous loading /// of the designer and allows other objects to initiate a reload of othe /// design surface. Designer loaders do not need to implement this but it is /// recommended. We do not directly put this on DesignerLoader so we can prevent /// outside objects from interacting with the main methods of a designer loader. /// These should only be called by the designer host. /// public interface IDesignerLoaderService { /// /// Adds a load dependency to this loader. This indicates that some other /// object is also participating in the load, and that the designer loader /// should not call EndLoad on the loader host until all load dependencies /// have called DependentLoadComplete on the designer loader. /// void AddLoadDependency(); /// /// This is called by any object that has previously called /// AddLoadDependency to signal that the dependent load has completed. /// The caller should pass either an empty collection or null to indicate /// a successful load, or a collection of exceptions that indicate the /// reason(s) for failure. /// void DependentLoadComplete(bool successful, ICollection errorCollection); /// /// This can be called by an outside object to request that the loader /// reload the design document. If it supports reloading and wants to /// comply with the reload, the designer loader should return true. Otherwise /// it should return false, indicating that the reload will not occur. /// Callers should not rely on the reload happening immediately; the /// designer loader may schedule this for some other time, or it may /// try to reload at once. /// bool Reload(); } }