![]() ![]() Source code would be better if that's an option, or if it's web-based, redirect to their URL. (Additional methods will be accessible through reflection - not that you would want to).Of course, only V1 methods and properties will be accessible from the plugin to the Main App.Main App will find and load the Person plugin and reference through a V1 definition for the IPerson interface.The main app folder will only contain the V1 plugin.The plugin folder will contain the V2 and V3 plugin.Person Plugin implements Plugins.V2.IPlugin and references the V3.So let's now take your case, main program older than plugin: You may need to have matching dlls for each version (each referencing the previous version(s)). dll will go even with this structural architecture of Interface versioning. Version 4: Plugins.V4.IPerson //Without any Interface inheritanceįinally, I am not 100% sure how versioning of the PluginAPI.In rare cases where you decide to remove or completely redesign your API, example: Version 3: Plugins.V3.IPerson : Plugins.V2.IPerson.Version 2: Plugins.V2.IPerson : Plugins.IPerson.Second, structurally, you should create a new interface each time you add a new property or method. ![]() Your main application will reference the PluginAPI, and each plugin will reference the PluginAPI. First, Your PluginAPI (containing the interfaces) should be a separate DLL to your main application. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
December 2022
Categories |