Domanda

Ciò di cui abbiamo idealmente bisogno è sapere come Microsoft gestisce il codice generato da XAML (quei file * .g.cs). Se vai indietro a un codice XAML, intellisense funzionerà anche se il file * .g.cs non fa parte del progetto !!


Contesto:

In un pacchetto VS personalizzato, dobbiamo avere un po 'di logica per aprire un file CS (senza renderlo parte del progetto) nell'IDE VS, per consentire all'utente di modificarlo.

Stiamo collegando il documento alla tabella Documenti in esecuzione e ricevendo eventi come Salvataggio, Chiudi e tutti, utilizzando IVSRunningDocumentTable. Funziona bene.

Ora il problema è che quando il documento viene aperto, Intellisense non può funzionare, per la semplice ragione che il documento aperto non fa parte del progetto (purtroppo, non possiamo farlo, non possiamo farlo codice dietro).

È stato utile?

Soluzione

Intellisense è guidato da una cache di memoria di identificatori e tipi. Questi tipi vengono memorizzati nella cache in base al progetto in cui ci si trova e ai riferimenti che il progetto ha. Se il file di codice che si sta modificando non fa parte di un progetto, Visual Studio dovrebbe caricare ogni possibile assembly e creare dati intellisense per ogni tipo nell'intero framework .NET perché non avrebbe modo di sapere se il file di codice richiesto.

Suppongo che Visual Studio potrebbe caricare intellisense in base al contenuto del file ma non è così che funziona attualmente.

Altri suggerimenti

Visual Assist X di Whole Tomato è un componente aggiuntivo di VS che utilizzo da molti anni. Ti darà Intellisense e altro quando lo apri.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top