IInitializable.cs
28 lines
| 1.2 KiB
| text/x-csharp
|
CSharpLexer
cin
|
r152 | using System; | ||
namespace Implab.Components { | ||||
/// <summary> | ||||
/// Initializable components are created and initialized in two steps, first we have create the component, | ||||
cin
|
r205 | /// 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()"/> | ||||
cin
|
r152 | /// </summary> | ||
public interface IInitializable { | ||||
/// <summary> | ||||
/// Completes initialization. | ||||
/// </summary> | ||||
/// <remarks> | ||||
cin
|
r251 | /// <para> | ||
cin
|
r184 | /// Normally virtual methods shouldn't be called from the constructor, due to the incomplete object state, but | ||
cin
|
r250 | /// they can be called from this method. This method is also usefull when we constructing a complex grpah | ||
cin
|
r152 | /// of components where cyclic references may take place. | ||
cin
|
r251 | /// </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> | ||||
cin
|
r152 | /// </remarks> | ||
cin
|
r205 | void Initialize(); | ||
cin
|
r152 | } | ||
} | ||||