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


CachedDataHostItemEnumerator Класс (2007 System)

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

Выполняет итерацию коллекции CachedDataHostItemCollection.

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

Синтаксис

'Декларация
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public NotInheritable Class CachedDataHostItemEnumerator _
    Implements IEnumerator(Of CachedDataHostItem), IDisposable,  _
    IEnumerator
'Применение
Dim instance As CachedDataHostItemEnumerator
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public sealed class CachedDataHostItemEnumerator : IEnumerator<CachedDataHostItem>, 
    IDisposable, IEnumerator

Заметки

Оператор foreach языка C# (For Each в Visual Basic) скрывает сложности использования перечислителей. Рекомендуется вместо непосредственного применения перечислителя использовать соответствующий для конкретного языка оператор.

Bb531833.alert_note(ru-ru,VS.90).gifПримечание.

Этот класс можно использовать только с решениями для Microsoft Office Word 2007 и Microsoft Excel 2007. Для доступа к кэшированным данным в решениях для Word 2003 следует использовать класс CachedDataHostItemEnumerator в пространстве имен Microsoft.VisualStudio.Tools.Applications.Runtime в Visual Studio 2005 Tools for Office Second Edition (среда выполнения). Дополнительные сведения см. в разделе Управление документами на сервере с помощью класса ServerDocument.

Перечислители могут использоваться для чтения данных коллекции; они не могут использоваться для изменения коллекции.

Изначально перечислитель располагается перед первым элементом коллекции. Метод Reset снова устанавливает перечислитель в данную позицию. В этой позиции задание свойства Current приводит к вызову исключения. Поэтому необходимо вызвать метод MoveNext до считывания значения свойства Current, чтобы переместить перечислитель к первому элементу коллекции.

Свойство Current возвращает один и тот же объект, пока не будет вызван метод MoveNext или Reset. Метод MoveNext задает следующий элемент в качестве значения свойства Current.

Если метод MoveNext проходит конец коллекции, то перечислитель помещается в ней после последнего элемента, а метод MoveNext возвращает значение false. Когда перечислитель находится в этой позиции, последующие вызовы метода MoveNext также возвращают значение false. Если при последнем вызове метода MoveNext было возвращено значение false, обращение к свойству Current приводит к исключению. Чтобы снова задать в качестве значения свойства Current первый элемент коллекции, можно последовательно вызвать методы Reset иMoveNext.

Перечислитель остается действительным, пока в коллекцию не вносятся изменения. Если в коллекцию были внесены изменения (например, были добавлены, изменены или удалены элементы), перечислитель становится необратимо недействительным, а метод MoveNext или Reset при следующем вызове выдает исключение InvalidOperationException. Если коллекция была изменена в промежутке между вызовом метода MoveNext и вызовом свойства Current, свойство Current возвращает элемент, для которого оно задано, даже если перечислитель уже недействителен.

Перечислитель не имеет монопольного доступа к коллекции, поэтому внутреннее перечисление коллекции в многопоточных операциях не является потокобезопасным. Даже если коллекция синхронизирована, другие потоки могут ее изменить, что приведет к выдаче исключения перечислителем. Чтобы обеспечить потокобезопасность при перечислении, можно заблокировать коллекцию на все время перечисления или перехватывать исключения, возникающие в результате изменений, внесенных другими потоками.

Иерархия наследования

System.Object
  Microsoft.VisualStudio.Tools.Applications.CachedDataHostItemEnumerator

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

CachedDataHostItemEnumerator - члены

Microsoft.VisualStudio.Tools.Applications - пространство имен