Bien le bonjour

Me voici confrontée à un nouveau problème de web service :

Je dois développer un agent pour l'entreprise qui m'a prise en alternance. Cet agent récupère automatiquement les liens ODBC installés sur l'ordinateur et génère les connectionstring associés, en fonction du type de la base.

Cet agent est développé suivant le design pattern MVC: une fois la connexion à la base sélectionnée établie, il va en parcourir le contenu et générer le model automatiquement (une table => une classe, un champ => un attribut)

Ces classes sont ensuite compilées dynamiquement.
Jusque là je n'ai aucun problème. le soucis est quand je souhaite passer un objet instancié dynamiquement à partir de ces classes (à l'aide de Activator.CreateInstance().
Mon web service est en WCF et j'ai bien ajouté l'attribut [DataContract] sur toutes mes classes et [DataMember] sur toutes les propriétés.

J'obtiens toujours une erreur de type "La connexion sous-jacente a été interrompue" lors du return d'une de mes fonctions sur le web service.
Cette méthode crée une instance d'une des classes dynamique et retourne un type object (vu que je ne peux pas savoir à l'avance le type passé)

Edit
quelques précisions

erreur complète:
La connexion sous-jacente a été fermée : La connexion a été interrompue de manière inattendue.

InnerException : System.Net.WebException
source : mscorlib
StackTrace :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
Server stack trace: 
  à System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason)
   à System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   à System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   à System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
   à System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   à System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   à System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
 
Exception rethrown at [0]: 
   à System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   à System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   à Fmcti.Sen.FmcAgent.Library.View.FmcWebService.IFmcWebService.GetObjectFromTable(String _Table)
   à Fmcti.Sen.FmcAgent.Library.View.FmcWebService.FmcWebServiceClient.GetObjectFromTable(String _Table) dans D:\Fmcti.Sen.FmcAgent.Library\Fmcti.Sen.FmcAgent.Library.View\Service References\FmcWebService\Reference.cs:ligne 133
   à Fmcti.Sen.FmcAgent.Library.View.FmcWebServiceProxy.GetTypeFromTable(String tableName) dans D:\Fmcti.Sen.FmcAgent.Library\Fmcti.Sen.FmcAgent.Library.View\FmcWebServiceProxy.cs:ligne 98
   à Testing.Form1.listBox1_MouseDoubleClick(Object sender, MouseEventArgs e) dans D:\Fmcti.Sen.FmcAgent.Library\Testing\Form1.cs:ligne 54
   à System.Windows.Forms.Control.OnMouseDoubleClick(MouseEventArgs e)
   à System.Windows.Forms.ListBox.WndProc(Message& m)
   à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   à System.Windows.Forms.Application.Run(Form mainForm)
   à Testing.Program.Main() dans D:\Fmcti.Sen.FmcAgent.Library\Testing\Program.cs:ligne 18
   à System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   à System.Threading.ThreadHelper.ThreadStart()