Mercurial > pub > ImplabNet
view Implab/Components/IInitializable.cs @ 256:c52691faaf21 v3
Removed obsolete App, ComponentContainer
Extracted IAsyncComponent interface
Working on RunnableComponent
author | cin |
---|---|
date | Wed, 11 Apr 2018 03:05:14 +0300 |
parents | 7c7e9ad6fe4a |
children | f1696cdc3d7a |
line wrap: on
line source
using System; namespace Implab.Components { /// <summary> /// 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 <see cref="Initialize()"/> method. All parameters needed /// to complete the initialization must be passed before the calling <see cref="Initialize()"/> /// </summary> public interface IInitializable { /// <summary> /// Completes initialization. /// </summary> /// <remarks> /// <para> /// 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. /// </para> /// <para> /// In asyncronous patterns <see cref="Initialize()"/> can be called /// to start initialization and the <see cref="IRunnable.Completion"/> /// property can be used to track operation completion. /// </para> /// </remarks> void Initialize(); } }