Поделиться через


SmartTag.PersistTag Метод (Int32, Int32, ) (2007 System)

Обновлен: Ноябрь 2007

Хранит сведения о смарт-теге.

Пространство имен:  Microsoft.Office.Tools.Word
Сборка:  Microsoft.Office.Tools.Word.v9.0 (в Microsoft.Office.Tools.Word.v9.0.dll)

Синтаксис

'Декларация
Protected Sub PersistTag ( _
    startIndex As Integer, _
    length As Integer, _
    propertyBag As ISmartTagProperties _
)
'Применение
Dim startIndex As Integer
Dim length As Integer
Dim propertyBag As ISmartTagProperties

Me.PersistTag(startIndex, length, _
    propertyBag)
protected void PersistTag(
    int startIndex,
    int length,
    ISmartTagProperties propertyBag
)

Параметры

  • startIndex
    Тип: System.Int32
    Позиция в абзаце, с которой начинается смарт-тег.
  • length
    Тип: System.Int32
    Длина смарт-тега.
  • propertyBag
    Тип: ISmartTagProperties
    Пакет свойств, содержащий ключ и пары значений маркера. Может иметь значение nullссылка null (Nothing в Visual Basic).

Исключения

Исключение Условие
InvalidOperationException

PersistTag(Int32, Int32, ISmartTagProperties) не вызывался из Recognize.

Заметки

PersistTag(Int32, Int32, ISmartTagProperties) сохраняет распознаваемый тег. Вызовите его из метода Recognize, чтобы указать, что в тексте обнаружен смарт-тег. Используйте параметр propertyBag для сохранения настраиваемых свойств смарт-тега. Можно использовать свойства для настройки действия, если выбран элемент контекстного меню смарт-тега.

Примеры

В приведенном ниже примере кода демонстрируется переопределение метода Recognize в классе, производном от класса Microsoft.Office.Tools.Word.SmartTag. В этой реализации Recognize каждое выражение смарт-тега сравнивается с содержимым абзаца. Для каждого выражения смарт-тега в абзаце в коде добавляется настраиваемое свойство смарт-тега, после чего для распознавания смарт-тега используется метод PersistTag(Int32, Int32, ISmartTagProperties). В данном примере предполагается, что была добавлена ссылка на библиотеку типов Microsoft Smart Tags 2.0 на вкладке COM диалогового окна Добавление ссылки. Данный пример кода является частью большого примера, приведенного в описании класса 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 text for the current smart tag term.
        Dim index As Integer = Me.ParagraphText.IndexOf(Term, 0)

        While (index >= 0)

            ' 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(index, Term.Length, propertyBag)

            ' Increment the index and then find the next
            ' instance of the smart tag term.
            index += Term.Length
            index = ParagraphText.IndexOf(Term, index)
        End While
    Next
End Sub
protected override void Recognize(string text, 
    ISmartTagRecognizerSite site, ISmartTagTokenList tokenList)
{
    foreach (string term in this.Terms)
    {
        // Search the text for the current smart tag term.
        int index = this.ParagraphText.IndexOf(term, 0);

        while (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(index, term.Length, propertyBag);

            // Increment the index and then find the next
            // instance of the smart tag term.
            index += term.Length;
            index = ParagraphText.IndexOf(term, index);
        }
    }
}

Разрешения

См. также

Ссылки

SmartTag Класс

SmartTag - члены

PersistTag - перегрузка

Microsoft.Office.Tools.Word - пространство имен