Say we define plugin interface in assembly A.
public class PluginData { public string Data { get; set; } }
public interface IPlugin { public PluginData Get(); }
We have a lot of plugins using it. Then, we change plugin interface to add one more method, now plugin interface assembly becomes v1.1.
public class PluginData { public string Data { get; set; } }
public interface IPlugin
{
public PluginData Get();
public void Process(PluginData data);
}
Now, is there a way to do
var data = new PluginV10().Get();
new PluginV11().Process(data);
?
The only solutions I see now is to marshal data manually by serializing/deserializing it, having custom from/to XML methods, invoked using reflection, etc.