Metoda LanguageService.ParseSource —
Analizuje źródło, w oparciu o określony ParseRequest obiektu.
Przestrzeń nazw: Microsoft.VisualStudio.Package
Zestawy: Microsoft.VisualStudio.Package.LanguageService.9.0 (w Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
Microsoft.VisualStudio.Package.LanguageService.10.0 (w Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
Microsoft.VisualStudio.Package.LanguageService.11.0 (w Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
Microsoft.VisualStudio.Package.LanguageService (w Microsoft.VisualStudio.Package.LanguageService.dll)
Składnia
'Deklaracja
Public MustOverride Function ParseSource ( _
req As ParseRequest _
) As AuthoringScope
public abstract AuthoringScope ParseSource(
ParseRequest req
)
Parametry
- req
Typ: Microsoft.VisualStudio.Package.ParseRequest
[w] ParseRequest Opisujące jak analizować plik źródłowy.
Wartość zwracana
Typ: Microsoft.VisualStudio.Package.AuthoringScope
Jeśli się powiedzie, zwraca AuthoringScope obiektu; w przeciwnym razie zwraca wartość null.
Uwagi
Ta metoda musi zostać wprowadzona do klasy pochodzącej z LanguageService klasy.Należy pamiętać, że operacja analizy może działać na całą źródłową pliku lub pojedynczego wiersza lub pojedynczej tokenu.ParseReason Kod na ParseRequest decyduje o tym, zakres operacji analizy.
Zwrócony AuthoringScope zawiera wszystkie informacje wydzielone z pliku źródłowego.
[!UWAGA]
AuthoringScopejest klasą abstrakcyjną i własnej klasy musi pochodzić z niego, aby zapewnić niezbędne funkcje.Wersji AuthoringScope jest tworzone wystąpienia w tej metodzie ParseSource.Musi zwracać AuthoringScope obiektu, nawet jeżeli wszyscy członkowie tej klasy zwrotu wartości null!
Ta metoda może być wywoływana dla pierwszego planu lub tła wątku i oczekuje się zawsze do analizowania źródła zgodnie z ParseReason kodu przed powrotem.
Mimo że ParseRequest zawiera strukturę IVsTextView obiektów w wątku tła ze względu na kwestie wątków nie można używać tego obiektu.W rzeczywistości, nie można używać w wątku tła Source, ViewFilter, CodeWindowManager klasy lub dowolnej klasy, która komunikuje się bezpośrednio lub pośrednio z widoku.ParseSource Parsera metoda musi uzyskać wszystkie swoje informacje o źródle tekstu, dostarczanych w ParseRequest struktury (który zawsze zawiera plik całego źródła).
Przykłady
Oto prosty szkielet ewentualnego zastosowania ParseSource metody.
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.Package;
namespace MyLanguagePackage
{
public class MyLanguageService : LanguageService
{
public AuthoringScope ParseSource(ParseRequest req)
{
MyAuthoringScope scope = new MyAuthoringScope();
if (req.Reason == ParseReason.Check ||
req.Reason == ParseReason.None)
{
// Parse the entire source as given in req.Text. Store results in the MyAuthoringScope object.
}
else if (req.Reason == ParseReason.DisplayMemberList)
{
// Parse the line specified in req.Line for the two tokens just before req.Col to get the identifier and the member connector symbol. Find members of the identifer in the parse tree and store the list of members in the Declarations class.
}
else if (req.Reason == ParseReason.MethodTip)
{
// Parse the line specified in req.Line for the token just before req.Col to obtain the name of the method. Find all method signatures with the same name in the existing parse tree and store the list of signatures in the Methods class.
}
// continue for the rest of the supported ParseReason values.
return scope;
}
}
}
Zabezpieczenia programu .NET Framework
- Pełne zaufanie do bezpośredniego wywołującego. Tego elementu członkowskiego nie można używać w kodzie częściowo zaufanym. Aby uzyskać więcej informacji, zobacz Przy użyciu bibliotek z częściowo zaufanego kodu..