Grammar.RuleName Property

Read-only value containing the name of root or entry point rule of a valid Grammar instance.

Namespace: Microsoft.Speech.Recognition
Assembly: Microsoft.Speech (in microsoft.speech.dll)



Property Value

Returns a string with the name of root or entry point rule of a valid Grammar instance.


If the root rule of a Grammar has no name, the method returns null.

The root rules of instances of Grammar constructed from GrammarBuilder objects typically have no name, so RuleName returns null.


In the example below, a Windows.Forms.TreeView display of loaded Grammar object is updated with the grammar name (Name) and the root rule name (RuleName)

public void UpdateGrammarTree(TreeView grammarTreeView, SpeechRecognizer recognizer) {
    grammarTreeView.Nodes.Clear(); //clean up tree and repopulate
    foreach (Grammar grammar in recognizer.Grammars) {
        //Should probably do a sanity check and remove node if it exists.
        TreeNode grammarNode = new TreeNode(grammar.Name);
        grammarNode.Checked = grammar.Enabled;
        grammarNode.Tag = grammar;
        grammarNode.ForeColor = Color.Red;
        //Add rule name as next layer
        if (grammar.RuleName != null) {
            TreeNode ruleNode = new TreeNode(grammar.RuleName);
            ruleNode.Tag = grammar.RuleName;
            ruleNode.Checked = grammarNode.Checked;

Thread Safety

All public static (Shared in Visual Basic) members of this type are thread-safe. Instance members are not guaranteed to be thread-safe.


Development Platforms

Windows XP Professional with Service Pack 2 (SP2), Windows Server 2003, Windows Vista Ultimate Edition, Windows Vista Business Edition, Windows Vista Enterprise Edition

Target Platforms

See Also


Grammar Class
Grammar Members
Microsoft.Speech.Recognition Namespace