I develop an application that uses a plugin interface, that the hosting application as well as the plugins implement. Each plugin is loaded via:
newPlugin.Instance = (IPlugin)Activator.CreateInstance(pluginAssembly.G etType(pluginType.ToString()));
All Plugins are inside a sub directory called "plugins" of the main application.
Now I developed one plugin that should implement a network interface, using external dll's from a framework i wrote some time ago. This framework binary serializes objects, compresses them and sends them over the net.
When I receive such an Object in the Plugin, i can deserialize it without any problem and it is showed correctly while debugging as "object" type (resulting from the deserialization). Now, when I try to cast this object to a structure (that is described in an external dll - an object library - which is the same at the sending an receiving side) i get a "Cast Exception" in the plugin.
By the way, the object and it's type look correctly while debugging and, i can send such objects from this application to the remote one, that also can cast them, using exact the same dll (the object library).
I searched around a lot, but found no real answer...
Maybe the problem is that "Activator.CreateInstance" loads the plugin assembly into a wrong appDomain, because the remote application does not use plugins and refers to the object library - dll directly.
The source code is a bit complex, so i hope that someone might be able to help me just with this description of the problem.
Thx in advance,
Gerd