Tracciare un oggetto

3

Supponiamo di volere un oggetto con un elenco di stringhe e ogni metodo che viene passato a questo oggetto per aggiungere il suo nome all'elenco di stringhe. Fondamentalmente si tratta di una traccia di stack, tranne che a differenza di una traccia di stack che conserva una traccia di ovunque sia stata precedentemente.

Per fare questo, dovrei mettere il codice in ogni metodo che passa attraverso se stesso, ma se passasse attraverso metodi che non sapevano di aggiungere se stessi allora ovviamente non avrebbe un record di avere passati attraverso questi metodi.

Sarebbe bello se fosse possibile rendere un oggetto consapevole, per così dire, dei metodi che attraversa, ma non credo che lo sia. Ma mi chiedo se ci sia un altro modo per ottenere una registrazione di tutti i metodi attraverso cui passa l'oggetto, inclusi quei metodi che non sanno aggiornare l'oggetto?

EDIT: Attualmente, penso che il modo migliore per risolvere questo problema sia quello di rendere qualsiasi proprietà / metodo a cui si accede sull'aggiornamento dell'oggetto stesso in quel momento. ovviamente questo non prenderebbe punti che passa semplicemente senza essere accessibile.

    
posta BVernon 24.02.2015 - 18:18
fonte

2 risposte

1

Vorrei prima esaminare le soluzioni non codificanti:

  1. ReSharper - Trova utilizzi

  2. Visual Studio Ultimate - Dipendenze della mappa

risposta data 25.02.2015 - 13:30
fonte
0

Dai un'occhiata agli oggetti StackTrace e StackFrame nello spazio dei nomi System.Diagnostics . Possono essere in grado di aiutare a disconnettere le informazioni desiderate. Quando si verifica un'eccezione, la traccia dello stack nell'eccezione viene catturata in modo simile. Sembra che tu voglia registrare anche le situazioni non-eccezionali, quindi questo può essere d'aiuto in quanto si può ottenere lo stack e il frame in qualsiasi punto del codice.

    
risposta data 12.05.2015 - 17:12
fonte

Leggi altre domande sui tag