ParseResultHandler Temsilci
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Önemli
Bu API, CLS uyumlu değildir.
Bir dil hizmetindeki ayrıştırma işlemi tamamlama işleyicisi için bir temsilci tanımlamak üzere kullanılır.
public delegate void ParseResultHandler(ParseRequest ^ request);
[System.CLSCompliant(false)]
public delegate void ParseResultHandler(ParseRequest request);
[<System.CLSCompliant(false)>]
type ParseResultHandler = delegate of ParseRequest -> unit
Public Delegate Sub ParseResultHandler(request As ParseRequest)
Parametreler
- request
- ParseRequest
'ndaki ParseRequest Ayrıştırma işleminin ne yaptığını açıklayan nesne.
- Öznitelikler
Örnekler
Bu temsilcinin nasıl kullanıldığına ilişkin bir örnek aşağıda verilmiştir. Bu kod, Source bir tamamlama işlemi için ayrıştırmayı işleyen sınıftaki kodu temel alır.
namespace Microsoft.VisualStudio.Package
{
[CLSCompliant(false)]
public class Source :
IDisposable,
IVsTextLinesEvents,
IVsFinalTextChangeCommitEvents,
IVsHiddenTextClient
{
private LanguageService service;
private CompletionSet completionSet;
public virtual void Completion(IVsTextView textView,
TokenInfo info,
ParseReason reason)
{
int line;
int idx;
int hr = textView.GetCaretPos(out line, out idx));
if (hr == VSConstants.S_OK)
{
bool synchronous = (reason == ParseReason.CompleteWord ||
reason == ParseReason.DisplayMemberList);
this.BeginParse(line,
idx,
info,
reason,
textView,
new ParseResultHandler(this.HandleCompletionResponse),
synchronous);
}
}
internal void HandleCompletionResponse(ParseRequest req)
{
try
{
if (this.service == null || req.Scope == null || this.completionSet == null)
return;
ParseReason reason = req.Reason;
Declarations decls = req.Scope.GetDeclarations(req.View,
req.Line,
req.Col,
req.TokenInfo,
reason);
bool completeWord = (reason == ParseReason.CompleteWord);
if ( decls.GetCount() > 0 &&
(this.service.Preferences.AutoListMembers || completeWord))
{
this.completionSet.Init(req.View, decls, completeWord);
}
} catch (Exception e) {
}
}
}
}
Açıklamalar
Bu temsilci, bir ayrıştırma işlemi tamamlandığında çağrılan bir işleyiciyi açıklar. ParseRequestNesnesi, ayrıştırma işleminin sonuçlarına erişim sağlar. Bu temsilci, BeginParse sınıfındaki yöntemine geçirilir LanguageService .