I've made an application that supports plugins. At the moment, the plugin's base class implements an abstract class and supplies it with the name of the plugin (stuff omitted):
public class AppExecutePlugin : APlugin
{
public AppExecutePlugin() : base("Application Execute")
{
}
... (other stuff here)
}
Now, I am thinking of naming plugins using custom attributes as so (don't care about syntactical errors):
[PluginName("Application Execute")]
public class AppExecutePlugin : APlugin
{
public AppExecutePlugin()
{
}
}
Since I rarely use attributes for my own apps, I would like to know whether the second approach will lead to more abstract implementation or in general if it has pros comparing to my first approach.