Freigeben über


RecognizerContext.WordList-Eigenschaft

Ruft das WordList-Objekt ab, das zur Verbesserung der Erkennungsergebnisse verwendet wird, oder legt dieses fest.

Namespace:  Microsoft.Ink
Assembly:  Microsoft.Ink (in Microsoft.Ink.dll)

Syntax

'Declaration
Public Property WordList As WordList
'Usage
Dim instance As RecognizerContext
Dim value As WordList

value = instance.WordList

instance.WordList = value
public WordList WordList { get; set; }
public:
property WordList^ WordList {
    WordList^ get ();
    void set (WordList^ value);
}
/** @property */
public WordList get_WordList()
/** @property */
public  void set_WordList(WordList value)
public function get WordList () : WordList
public function set WordList (value : WordList)

Eigenschaftenwert

Typ: Microsoft.Ink.WordList
Die Wortliste, die zur Verbesserung der Erkennungsergebnisse verwendet wird. Das zurückgegebene Objekt ist eine interne Arbeitskopie der zugrunde liegenden Wortliste, kein direkter Verweis.

Hinweise

Sie können diese Eigenschaft erst verwenden, nachdem Sie sie initialisiert haben, indem Sie ein newWordList-Objekt instanziiert und das neu erstellt Objekt der WordList-Eigenschaft zugewiesen haben.

Die WordList-Eigenschaft lässt sich nur festlegen, wenn die Strokes-Eigenschaft den Wert nullNULL-Verweis (Nothing in Visual Basic) hat. Sie müssen die WordList-Eigenschaft festlegen, bevor Sie eine Strokes-Auflistung der Strokes-Eigenschaft des RecognizerContext-Objekts anhängen, oder Sie müssen die Strokes-Eigenschaft auf nullNULL-Verweis (Nothing in Visual Basic) festlegen und dann die WordList-Eigenschaft festlegen.

Hinweis

Wenn Sie die letztere Methode verwenden, müssen Sie die Strokes-Auflistung möglicherweise erneut an die Strokes-Eigenschaft des RecognizerContext-Objekts anfügen.

Um die aktuelle Wortliste zu entfernen und das Benutzerwörterbuch zu verwenden, legen Sie die WordList-Eigenschaft auf nullNULL-Verweis (Nothing in Visual Basic) fest. Alle nachfolgenden Änderungen des WordList-Objekts wirken sich nicht auf das Erkennungsergebnis aus.

Es ist nicht sinnvoll zu testen, ob diese Eigenschaft auf nullNULL-Verweis (Nothing in Visual Basic) festgelegt wurde. Der get-Accessor gibt immer einen Wert zurück, der ungleich NULL ist. Dies wird anhand des folgenden Beispiels veranschaulicht.

Dim RC As RecognizerContext = New RecognizerContext()
RC.WordList = Nothing
If (Not RC.WordList Is Nothing) Then ' always true
    ' but this won't work, throws a null reference exception
    RC.WordList.Add("thunk")
End If
RecognizerContext RC = new RecognizerContext();
RC.WordList = null;
if (RC.WordList != null) // always true
{
    // but this won't work, throws a null reference exception
    RC.WordList.Add("thunk");
}

Weil der Rückgabewert dieser Eigenschaft eine interne Arbeitskopie der zugrunde liegenden Wortliste und kein direkter Verweis ist, sind alle eventuell hinzugefügten Wörter oder Ausdrücke erst dann für Erkennungsvorgänge verfügbar, nachdem die WordList-Eigenschaft erneut zugewiesen wurde. Berücksichtigen Sie die folgenden Punkte:

Dim RC As RecognizerContext = New RecognizerContext()
RC.WordList = New WordList()
Dim testStr As String = "thunk"
' test if string is supported - false
Dim isTestStrSupported As Boolean = RC.IsStringSupported(testStr)
' get a copy of the WordList
Dim WL As WordList = RC.WordList
' add the string to the copy
WL.Add(testStr)
' test if string is supported - still false
isTestStrSupported = RC.IsStringSupported(testStr)
' assign copy back to the WordList property
RC.WordList = WL
' test if string is supported - now true
isTestStrSupported = RC.IsStringSupported(testStr)
RecognizerContext RC = new RecognizerContext();
RC.WordList = new WordList();
string testStr = "thunk";
// test if string is supported - false
bool isTestStrSupported = RC.IsStringSupported(testStr);
// get a copy of the WordList
WordList WL = RC.WordList;
// add the string to the copy
WL.Add(testStr);
// test if string is supported - still false
isTestStrSupported = RC.IsStringSupported(testStr);
// assign copy back to the WordList property
RC.WordList = WL;
// test if string is supported - now true
isTestStrSupported = RC.IsStringSupported(testStr);

Im vorherigen Beispiel wird das Testwort der internen Kopie der WordList-Eigenschaft hinzugefügt, und dann wird die Kopie erneut der WordList-Eigenschaft zugewiesen.

Stattdessen können Sie das Testwort auch der WordList-Eigenschaft selbst hinzufügen. In diesem Fall verändern Sie die interne Arbeitskopie. Sie müssen die WordList-Eigenschaft allerdings auch hier erneut zuweisen, damit das neu hinzugefügte Wort für Erkennungsvorgänge verfügbar ist.

Dim RC As RecognizerContext = New RecognizerContext()
RC.WordList = New WordList()
Dim testStr As String = "thunk"
' test if string is supported - false
Dim isTestStrSupported As Boolean = RC.IsStringSupported(testStr)
' get a copy of the WordList
Dim WL As WordList = RC.WordList
' add the string to the WordList property itself
RC.WordList.Add(testStr)
' test if string is supported - still false
isTestStrSupported = RC.IsStringSupported(testStr)
' assign copy back to the WordList property
RC.WordList = WL
' test if string is supported - now true
isTestStrSupported = RC.IsStringSupported(testStr)
RecognizerContext RC = new RecognizerContext();
RC.WordList = new WordList();
string testStr = "thunk";
// test if string is supported - false
bool isTestStrSupported = RC.IsStringSupported(testStr);
// get a copy of the WordList
WordList WL = RC.WordList;
// add the string to the WordList property itself
RC.WordList.Add(testStr);
// test if string is supported - still false
isTestStrSupported = RC.IsStringSupported(testStr);
// assign copy back to the WordList property
RC.WordList = WL;
// test if string is supported - now true
isTestStrSupported = RC.IsStringSupported(testStr);

Wenn die WordList-Eigenschaft mit der Kopie, die über den get-Accessor der Eigenschaft abgerufen wurde, zugewiesen wird, wird das ursprüngliche WordList-Objekt nicht durch den veränderten Inhalt ersetzt. Stattdessen wird die Differenzmenge dem ursprünglichen WordList-Objekt hinzugefügt. Wenn Sie das ursprüngliche WordList-Objekt ersetzen möchten, verwenden Sie eine der folgenden Techniken:

  1. Erstellen Sie ein neues RecognizerContext-Objekt, und weisen Sie ihm das geänderte WordList-Objekt zu.

  2. Erstellen Sie ein neues WordList-Objekt, und weisen Sie es dem vorhandenen RecognizerContext-Objekt zu.

Verwenden Sie die Factoid-Eigenschaft, um die Suche auf die Wortliste, die dem Kontext zugeordnet ist, zu beschränken. Um die Ergebnisse zu verbessern, müssen Sie möglicherweise auch die RecognitionFlags-Eigenschaft festlegen.

Die WordList-Eigenschaft kann nicht festgelegt werden, nachdem ein Faktoid festgelegt wurde. Dadurch wird verhindert, dass ein Faktoid auf eine möglicherweise nicht vorhandene Wortliste verweist. Wenn Sie es trotzdem versuchen, wird die folgende COM-Ausnahme ausgelöst: "Die Methode wurde aufgerufen, nachdem der Prozess gestartet oder das Faktoid festgelegt wurde".

Wenn eine Zeichenfolge einer Wortliste hinzugefügt wird, werden implizit auch die entsprechenden Versionen der Zeichenfolge in Großbuchstaben hinzugefügt. Wenn Sie beispielsweise "hello" hinzufügen, werden implizit auch "Hello" und "HELLO" hinzugefügt.

Um das WordList-Objekt zu löschen, legen Sie es auf ein leeres WordList-Objekt fest.

Beispiele

In diesem Beispiel wird ein RecognizerContext-Objekt instanziiert, und ein neues WordList-Objekt wird dessen WordList-Eigenschaft zugewiesen. Mithilfe der IsStringSupported-Methode wird dann bestimmt, ob die angegebene Zeichenfolge unterstützt wird. Wenn nicht, wird die Zeichenfolge der WordList-Wortliste hinzugefügt.

Dim RC As RecognizerContext = New RecognizerContext()
RC.WordList = New WordList()
Dim testStr As String = "thunk"
If Not RC.IsStringSupported(testStr) Then
    Dim WL As WordList = RC.WordList
    WL.Add(testStr)
    ' testStr is not available for use in recognition
    ' until the WordList property is re-assigned
    RC.WordList = WL
End If
RecognizerContext RC = new RecognizerContext();
RC.WordList = new WordList();
string testStr = "thunk";
if (!RC.IsStringSupported(testStr))
{
    WordList WL = RC.WordList;
    WL.Add(testStr);
    // testStr is not available for use in recognition
    // until the WordList property is re-assigned
    RC.WordList = WL;
}

Plattformen

Windows Vista

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Versionsinformationen

.NET Framework

Unterstützt in: 3.0

Siehe auch

Referenz

RecognizerContext-Klasse

RecognizerContext-Member

Microsoft.Ink-Namespace

RecognizerContext

WordList

RecognizerContext.Strokes

RecognizerContext.Factoid

RecognizerContext.RecognitionFlags