2011-08-30 10 views
5

Sto provando a modificare l'app di traccia di esempio fornita con Postsharp in modo che la traccia venga applicata a tutte le classi nel mio spazio dei nomi senza esplicitamente mettere [QuickTrace] su in cima a ogni classe. Ho allegato uno screenshot. Che cosa sto facendo di sbagliato ? Fai clic con il pulsante destro del mouse per visualizzare l'immagine ingrandita. graziecome applicare una soluzione di aspetto Postsharp ampia (tutte le classi nello spazio dei nomi)

enter image description here

+1

mi creda, non si vuole fare questo .. –

+0

Quando tracciando un grande app per capire di cosa si sta facendo, è meglio prima traccia tutto e poi selettivamente disabilita classi/metodi che non sono richiesti quando inizi a capire. Solo la mia opinione. grazie – Gullu

risposta

4

Lo stai facendo in modo non corretto. Stai tentando di assegnare gli aspetti a mscorelib che invierà le chiamate a qualsiasi metodo che risiede in mscorelib (non nella tua app corrente) ma lo stai negando con il fatto che stai dicendo di applicare a metodi solo in lo spazio dei nomi Trace.

Basta usare

[assembly: QuickTrace()] 

Done. Sul vostro aspetto, aggiungere il seguente

[QuickTrace(AttributeExclude=True)] 
[Serializable] 
public QuickTrace : OnMethodBoundaryAspect 
{ 
    //..Aspect code here 
} 
+0

Aggiornato la mia risposta. Devi escludere il tuo aspetto dall'applicazione al tuo aspetto. –

+0

Compila ora ma non ci sono linee di traccia stampate sulla console. Quasi come l'intera soluzione/progetto è escluso. In program.cs sopra namespace Trace I ha [assembly: QuickTrace (AttributeExclude = true)] grazie – Gullu

+0

No, lo aggiungi alla tua classe ASPECT. Lo stai escludendo da tutto ora. –

Problemi correlati