2010-08-02 14 views
5

che sto cercando di fare un wrapper per un oggetto COM più facile lavorare con durante il debug con l'aggiunta di un attributo DebuggerTypeProxy - l'attributo sembra funzionare per qualche tempo (durante l'esecuzione di test di unità, ecc ..), ma non funziona quando eseguo il debug del processo di destinazione e non so perché:Diagnosi perché attributi DebuggerTypeProxy non funzionano

  • Ho verificato che l'assembly corretto venga caricato nella finestra dei moduli e perfino smontato l'assemblea per assicurarsi che sia quella giusta e abbia gli attributi corretti ecc ...
  • Ho provato a rendere pubbliche le mie classi di proxy di debug, ma ciò non ha fatto differenza.
  • Ho usato riflessione nella finestra immediata durante il debug il mio processo esterno e visto che l'attributo ho definito sembra essere corretto.

altre classi che hanno DebuggerTypeProxy attributi definiti su di loro (nella stessa assemblea) sembrano funzionare bene - non riesco proprio a capire perché

  • C'è qualche altra ragione per la quale il mio attributo DebuggerTypeProxy non funzionerebbe nel processo di destinazione?
  • Esistono altri modi per eseguire il debug/troubleshooting del motivo per cui l'attributo non ha alcun effetto?

risposta

1

Dato che si sta lavorando su Visual Studio 2010, il mio sospetto è che la funzione Inserimento tipi di interoperabilità causi questo problema. Prova a disattivare i tipi di interoperabilità e ripeti la soluzione.

  • Vai alla voce riferimenti in Esplora soluzioni
  • Selezionare ogni riferimento
  • Portare la griglia delle proprietà
  • Change "Tipi di incorporare Interop" per falso
  • Ricostruire

Poi ripeti il ​​tuo scenario.

+0

Ah - mi spiace, ho dimenticato la domanda VS2010, ma in realtà sta succedendo su VS2008. (mi dispiace) – Justin

+0

@Kragen in qualche modo ha perso il tuo commento. Che lingua stai usando? – JaredPar

+0

Il proxy di tipo debugger ecc ... sono tutti scritti in C# – Justin

2

Ho avuto questo stesso problema e trovato la risposta è stata di deselezionare "Mostra struttura grezza di oggetti in variabili di Windows" in Strumenti> Opzioni> Debugging> Impostazioni generali.

+0

Questo è già spuntato, ma grazie per il suggerimento. – Justin

1

In applicazione Asp.net, il problema era nella protezione dall'accesso di codice. Quando l'applicazione viene eseguita con piena attendibilità, tutto andava bene. Con attendibilità parziale - Gli attributi DebuggerTypeProxy non funzionano

0

Ho anche inciampato su questo problema.

DebuggerTypeProxy non funzionava correttamente in Medium Trust.

Il problema è stato risolto spostando la classe DebuggerTypeProxy da classe privata nidificata (in una classe contenitore per la quale è un proxy debugger) a essere una classe interna direttamente sotto lo spazio dei nomi (non nidificata).

Nel caso in cui qualcun altro inciampi sullo stesso problema.

0

Usa Managed Compatibilità modalità dovrebbe essere controllato nel Strumenti, Opzioni, debug, generale.

Problemi correlati