È possibile creare un metodo che esegue l'assistenza per il debug come la classe System.Diagnostics.Debug
?È possibile creare un metodo Debug-only in .NET?
Sto cercando un modo per costruire un metodo che quando viene chiamato da un assembly compilato con il simbolo di compilazione condizionale DEBUG definito, restituisce un'operazione e che è un no-op quando viene chiamato da un assembly senza il simbolo definito.
Se possibile, mi piacerebbe che le chiamate ai metodi di debug aggiungessero un sovraccarico minimo o aumentassero di dimensioni alla versione di rilascio dell'assieme.
Per chiarire, i metodi di debug devono essere in un assembly compilato in modalità di rilascio. Le chiamate ai metodi dovrebbero generare solo le operazioni quando vengono chiamate da un assembly con il simbolo DEBUG definito nell'ambito della chiamata al metodo.
+1 per aver ricordato che condizionale non è infallibile (vuol dire che è ancora CLI-compatibile?) Cosa succede per C++ chiama a Debug.WriteLine? È per tutte le versioni? Sarebbe bello modificarlo in: P –
Non l'ho ancora provato. La pagina MSDN su ConditionalAttribute dice solo che il compilatore C++ non è conforme, senza dire quali versioni. – SLaks
Come ho affermato nella risposta ('e emetterà sempre la chiamata '), il compilatore C++ (credo) emetterà sempre chiamate a' WriteLine', anche in Release. – SLaks