45 lines
1.1 KiB
C#
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
|
|
}
|
|
}
|