using JD.LogService; using JD.TeaBoxAddinSystem.Addins.Description; using JD.TeaBoxAddinSystem.Addins.Internal; namespace JD.TeaBoxAddinSystem.Addins { /// /// A lazy-obtained resource. /// public class LazyResourceReference : LazyReference { #region Constructor /// /// Constructor. /// /// /// public LazyResourceReference(Node node, string resourcename) : base(node, resourcename) { } #endregion #region Methods /// /// Creates the value. /// /// /// /// protected virtual T CreateValue(IResources resources, string resourceName) { return (T)resources.GetObject(resourceName); } /// /// Creates an instance from the module. /// /// protected override T LoadValue() { T value = CreateValue(Node.Module.Resources, ResourceName); if (ReferenceEquals(value, null)) { AddinManager.Log(new Error(LogCategory.Error, "Unable to create the resource named '{0}'.", ResourceName) { Origin = FileLocation }); } return value; } #endregion } }