SmartTagBase.Recognize 方法 (2007 system)

更新:2007 年 11 月

在文本中搜索识别的术语。

命名空间:  Microsoft.Office.Tools
程序集:  Microsoft.Office.Tools.Common.v9.0(在 Microsoft.Office.Tools.Common.v9.0.dll 中)

语法

声明
Protected Overridable Sub Recognize ( _
    text As String, _
    site As ISmartTagRecognizerSite, _
    tokenList As ISmartTagTokenList _
)
用法
Dim text As String
Dim site As ISmartTagRecognizerSite
Dim tokenList As ISmartTagTokenList

Me.Recognize(text, site, tokenList)
protected virtual void Recognize(
    string text,
    ISmartTagRecognizerSite site,
    ISmartTagTokenList tokenList
)

参数

  • text
    类型:System.String

    要搜索的文本,搜索的目标是识别的术语。

  • site
    类型:ISmartTagRecognizerSite

    文本在工作簿或文档中的位置。

  • tokenList
    类型:ISmartTagTokenList

    分解为标记列表的搜索文本,搜索的目标是识别的术语。

备注

在空闲期间由 Visual Studio Tools for Office 运行时调用,以便在文本中搜索识别的术语。如果您除了运行标准识别器以外还要结合自己的搜索算法,请实现此方法。

示例

下面的代码示例演示如何重写从 Microsoft.Office.Tools.Excel.SmartTag 派生的类中的 Recognize 方法。Recognize 的此实现会将每个智能标记术语与 Microsoft Office Excel 工作表单元格中的内容进行比较。如果在单元格中找到了智能标记术语,则代码会向该智能标记中添加一个自定义的智能标记属性,然后调用 SmartTag.PersistTag(ISmartTagProperties) 方法以识别该智能标记。此示例假设您已从“添加引用”对话框的“COM”选项卡中向“Microsoft Smart Tags 2.0 类型库”添加了一个引用。此代码示例摘自一个为 Microsoft.Office.Tools.Excel.SmartTag 类提供的更大的示例。

此示例针对的是文档级自定义项。

Protected Overrides Sub Recognize(ByVal text As String, _
    ByVal site As ISmartTagRecognizerSite, _
    ByVal tokenList As ISmartTagTokenList)

    ' Determine whether each smart tag term exists in 
    ' the document text.
    Dim Term As String
    For Each Term In Me.Terms

        ' Search the cell text for the first instance of 
        ' the current smart tag term.
        Dim index As Integer = Me.CellText.IndexOf(Term, 0)

        If (index >= 0) Then

            ' Create a smart tag token and a property bag for the 
            ' recognized term.
            Dim propertyBag As ISmartTagProperties = _
                site.GetNewPropertyBag()

            ' Write a new property value.
            Dim key As String = "Key1"
            propertyBag.Write(key, DateTime.Now)

            ' Attach the smart tag to the term in the document
            Me.PersistTag(propertyBag)

            ' This implementation only finds the first instance
            ' of a smart tag term in the cell. 
            Exit For
        End If
    Next
End Sub
protected override void Recognize(string text, 
    ISmartTagRecognizerSite site, ISmartTagTokenList tokenList)
{
    // Determine whether each smart tag term exists in 
    // the document text.
    foreach (string term in this.Terms)
    {
        // Search the cell text for the first instance of 
        // the current smart tag term.
        int index = this.CellText.IndexOf(term, 0);

        if (index >= 0)
        {
            // Create a smart tag token and a property bag for the 
            // recognized term.
            ISmartTagProperties propertyBag = 
                site.GetNewPropertyBag();

            // Write a new property value.                 
            string key = "Key1";
            propertyBag.Write(key, DateTime.Now.ToString());

            // Attach the smart tag to the term in the document
            this.PersistTag(propertyBag);

            // This implementation only finds the first instance
            // of a smart tag term in the cell. 
            break;
        }
    }
}

权限

另请参见

参考

SmartTagBase 类

SmartTagBase 成员

Microsoft.Office.Tools 命名空间