2010-08-24 2 views
2

Je travaille sur une application Windows CE 6.0. L'application charge dynamiquement un certain nombre d'assemblys externes. Ces fichiers .dll sont en dehors de la solution, mais il existe des classes dans chacun d'entre eux qui implémentent une interface commune. Une fois les assemblages chargés, l'application parcourt chacune des classes et instancie une instance, puis appelle la méthode .Load() sur chacun d'entre eux.NotSupportedExceptions levées partout lors du débogage dans Windows CE

//in class definition 
private log4net.ILog _log = log4net.LogManager.GetLogger(this.GetType()); 


//in looping method 
foreach (IPlugin plugin in _plugins) 
{ 
    try 
    { 
     plugin.Load(); 
    } 
    catch (Exception e) 
    { 
     string message = string.Format("Plugin load error: {0}", plugin.Name); //breakpoint gets set here. 
     if (_log.IsErrorEnabled) _log.Error(message, e); 
    } 
} 

Cela fonctionne correctement lorsque je déploie l'application sur le périphérique et l'exécute. Cependant, quand je lance ceci dans le débogueur (attaché à l'appareil, pas un émulateur) la méthode Load() de l'un des plugins lance une 'System.NotSupportedException', qui est interceptée et nous essayons de la connecter. Toutefois, la propriété _log.IsErrorEnabled du journal Log4Net lève également une exception NotSupportedException.

Je reçois un comportement très étrange lorsque je définis un point d'arrêt sur la ligne où je construis le message. Si j'inspecte l'objet _log dans la fenêtre de surveillance, je vois que les propriétés IsErrorEnabled et IsFatalEnabled lancent toutes les deux NotSupportedExceptions, mais les autres propriétés IsXXXEnabled retournent True ou False comme elles le devraient.

De plus, si j'inspecte l'exception 'e' (qui est un NotSupportedException), je vois ce qui suit dans sa StackTrace propriété:

'((System.Exception) ($ exception)) StackTrace' jeté une exception de type 'System.NotSupportedException'

Ma question est ce qui pourrait causer cette panne apparente dans l'environnement de débogage? J'ai le sentiment que certaines des méthodes IsXXXEnabled de Log4Net fonctionnent et que d'autres ne le sont pas.

+0

Je ne suis pas familier avec ceci donc je ne posterai pas ceci comme réponse. Mais avec quoi CF travaillez-vous? Avez-vous installé tous les Service Packs pour cette CF? – Shaihi

+0

La solution est ciblée pour le framework 2.0. L'appareil a le framework 3.5 installé dessus. – eoldre

Répondre

0

Cela semble très suspect que votre mémoire soit insuffisante et que le moteur d'exécution rencontre des problèmes lors du chargement des informations de débogage pour vos cibles. A quoi ressemble la division de la mémoire sur l'appareil?

0

La désinstallation de Compact Framework 2.0 a résolu le problème. Espérons que cela aide quelqu'un d'autre.

Questions connexes