/// <summary> /// Выполняет поиск закладки в документе по значению параметра <paramref name="name"/>, /// и заполняет её значением <c><paramref name="value"/>.ToString()</c>. /// Если закладка не найдена, действие не выполняется. /// </summary> /// <param name="name">Имя целевой закладки.</param> /// <param name="value"> /// Ссылка на объект строковое представление которого необходимо поместить в закладку. /// </param> /// <exception cref="InvalidSdtElementException"> /// Возникает если дерево дочерних элементов <see cref="SdtElement"/> содержит недопустимые элементы /// или отсутствует обязательный дочерний элемент. /// </exception> protected void FillBookmark(string name, object value) { name.ThrowIfNullOrWhiteSpace(nameof(name)); value.ThrowIfNull(nameof(value)); try { BookmarkStart targetBookmark = _bookmarks.SingleOrDefault(bookmark => bookmark.Name == name); targetBookmark.Do(container => { container.Parent.InsertAfter(new Run(new Text(value.ToString())), container); }); } catch (InvalidOperationException) { throw new InvalidSdtElementException(name); } }