Partager via


RecognizerContext.WordList, propriété

Mise à jour : November 2007

Obtient ou définit l'objet WordList utilisé pour améliorer les résultats de reconnaissance.

Espace de noms :  Microsoft.Ink
Assembly :  Microsoft.Ink (dans Microsoft.Ink.dll)

Syntaxe

'Déclaration
Public Property WordList As WordList
'Utilisation
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)

Valeur de propriété

Type : Microsoft.Ink.WordList
Liste de mots utilisée pour améliorer les résultats de reconnaissance. L'objet retourné est une copie de travail interne de la liste de mots sous-jacente et non une référence directe.

Notes

Avant d'utiliser cette propriété, vous devez l'initialiser en instanciant un objet newWordList, et en assignant l'objet créé à la propriété WordList.

La définition de la propriété WordList aboutit uniquement si la propriété Strokes a la valeur nullune référence null (Nothing en Visual Basic). Vous devez définir la propriété WordList avant d'attacher une collection Strokes à la propriété Strokes du RecognizerContext ou bien affecter la valeur nullune référence null (Nothing en Visual Basic) à la propriété Strokes, puis définir la propriété WordList.

ms572024.alert_note(fr-fr,VS.90).gifRemarque :

Si vous utilisez cette dernière méthode, vous devrez probablement attacher de nouveau la collection Strokes à la propriété Strokes de l'objet RecognizerContext.

Pour supprimer la liste de mots actuelle et utiliser le dictionnaire utilisateur, affectez la valeur nullune référence null (Nothing en Visual Basic) à la propriété WordList. Toute modification ultérieure de l'objet WordList ne modifie pas le résultat de reconnaissance.

Un test visant à déterminer si la valeur nullune référence null (Nothing en Visual Basic) a été affectée à cette propriété n'est pas significatif. La valeur retournée par l'accesseur get est toujours non null. L'exemple suivant illustre ce comportement.

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");
}

Étant donné que la valeur de retour de cette propriété est une copie de travail interne de la liste de mots sous-jacente et non une référence directe, les ajouts de mots ou d'expressions ne peuvent pas être utilisés pendant la reconnaissance tant que la propriété WordList n'est pas réassignée. Vous devez tenir compte des éléments suivants :

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);

Dans l'exemple précédent, le mot test est ajouté à la copie interne de la propriété WordList, puis la copie est réassignée à la propriété WordList.

Vous pouvez également ajouter le mot test à la propriété WordList elle-même. Dans ce cas, vous modifiez la copie de travail interne et devez réassigner la propriété WordList avant de pouvoir utiliser le mot ajouté pendant la reconnaissance.

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);

Lorsque vous réassignez la propriété WordList avec la copie obtenue via l'accesseur get de la propriété, le contenu modifié ne remplace pas le WordList d'origine mais ajoute le différentiel au WordList d'origine. Si vous souhaitez remplacer le WordList d'origine, utilisez l'une des techniques suivantes :

  1. Créez un objet RecognizerContext et assignez-lui le WordList modifié.

  2. Créez un objet WordList et assignez-le au RecognizerContext existant.

Utilisez la propriété Factoid pour limiter la recherche à la liste de mots associée au contexte. Pour améliorer les résultats, vous pouvez également définir la propriété RecognitionFlags.

La propriété WordList ne peut être pas définie après un élément. Cela évite qu'un élément fasse référence à une liste de mots potentiellement inexistante. Ce cas de figure génère une exception COM signalant que la méthode a été appelée après l'appel au processus ou la définition de l'élément.

Si une chaîne est ajoutée à une liste de mots, ses versions en majuscules sont également ajoutées implicitement. Par exemple, l'ajout de « bonjour » englobe implicitement « Bonjour » et « BONJOUR ».

Pour effacer la WordList, affectez-lui la même valeur qu'un objet WordList vide.

Exemples

Dans cet exemple, un objet RecognizerContext est instancié et un nouvel objet WordList est assigné à sa propriété WordList. La méthode IsStringSupported est ensuite utilisée pour déterminer si une chaîne spécifiée est prise en charge. Si ce n'est pas le cas, la chaîne est ajoutée au WordList.

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;
}

Plateformes

Windows Vista

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Informations de version

.NET Framework

Pris en charge dans : 3.0

Voir aussi

Référence

RecognizerContext, classe

Membres RecognizerContext

Microsoft.Ink, espace de noms

RecognizerContext

WordList

RecognizerContext.Strokes

RecognizerContext.Factoid

RecognizerContext.RecognitionFlags