diff --git a/Torch.API/Plugins/PluginAttribute.cs b/Torch.API/Plugins/PluginAttribute.cs index 867555c..7b60e32 100644 --- a/Torch.API/Plugins/PluginAttribute.cs +++ b/Torch.API/Plugins/PluginAttribute.cs @@ -1,22 +1,55 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; using System.Text; using System.Threading.Tasks; namespace Torch.API.Plugins { + /// + /// Indicates that the given type should be loaded by the plugin manager as a plugin. + /// + [AttributeUsage(AttributeTargets.Class)] public class PluginAttribute : Attribute { + /// + /// The display name of the plugin + /// public string Name { get; } + /// + /// The version of the plugin + /// public Version Version { get; } + /// + /// The GUID of the plugin + /// public Guid Guid { get; } + /// + /// Creates a new plugin attribute with the given attributes + /// + /// + /// + /// public PluginAttribute(string name, string version, string guid) { Name = name; Version = Version.Parse(version); Guid = Guid.Parse(guid); } + + /// + /// Creates a new plugin attribute with the given attributes. Version is computed as the version of the assembly containing the given type. + /// + /// + /// Version is this type's assembly's version + /// + public PluginAttribute(string name, Type versionSupplier, string guid) + { + Name = name; + Version = versionSupplier.Assembly.GetName().Version; + Guid = Guid.Parse(guid); + } } }