using System; namespace Implab.Components { /// /// Initializable components are created and initialized in two steps, first we have create the component, /// then we have to complete it's creation by calling an method. All parameters needed /// to complete the initialization must be passed before the calling /// public interface IInitializable { /// /// Completes initialization. /// /// /// /// Normally virtual methods shouldn't be called from the constructor, due to the incomplete object state, but /// they can be called from this method. This method is also usefull when we constructing a complex grpah /// of components where cyclic references may take place. /// /// /// In asyncronous patterns can be called /// to start initialization and the /// property can be used to track operation completion. /// /// void Initialize(); } }