PluginAPI Isolated DLL
Firstly, your PluginAPI (containing the interfaces) should be a separate DLL for your main application. Your main application will reference PluginAPI, and each plugin will reference PluginAPI. You are most likely already doing this.
Interface Versions
Secondly, structurally, you must create a new interface every time you add a new property or method.
For instance:
- Version 1: .IPerson Plugins
- 2: .V2.IPerson: .IPerson
- 3: .V3.IPerson: Plugins.V2.IPerson
, API, :
- 4: Plugins.V4.IPerson//
DLL- PluginAPI
, 100%, DLL PluginAPI .
, dll ( ()). , .
3
, [3], :
- Person Plugins.V2.IPlugin V3.dll( ).
- V1.dll
- .dlls V2 V3.
- .dll V1 ( ).
- Person V1 IPerson.
- , V1
- ( - , )
, . , , , . . , . , .
, "" :
- . . , , , i) ; ii) . , . . [2], .
- - AppDomain. AppDomains , - . . , : i) - /, ii) ( ), iii) .
, [2] , [1] , , [2]. -. , [2] , , , , ( ).