JD2022-TU1/main/tools/framework/JD.TeaBoxAddinSystem/Addins/LazyInstanceReference.cs

45 lines
1.1 KiB
C#

using JD.TeaBoxAddinSystem.Addins.Internal;
namespace JD.TeaBoxAddinSystem.Addins
{
/// <summary>
/// A lazy-created instance of a type.
/// </summary>
public class LazyInstanceReference<T> : LazyReference<T>
{
#region Constructor
/// <summary>
/// Constructor.
/// </summary>
/// <param name="node"></param>
/// <param name="typename"></param>
public LazyInstanceReference(Node node, string typename)
: base(node, typename)
{ }
/// <summary>
/// Copy constructor.
/// </summary>
/// <param name="reference"></param>
public LazyInstanceReference(LazyInstanceReference<T> reference)
: base(reference)
{ }
#endregion
#region Methods
/// <summary>
/// Creates an instance from the module.
/// </summary>
/// <returns></returns>
protected override T LoadValue()
{
bool result;
return Node.Module.TryCreateInstance<T>(FileLocation, ResourceName, out result);
}
#endregion
}
}