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) скрывает сложности использования перечислителей. Рекомендуется вместо непосредственного применения перечислителя использовать соответствующий для конкретного языка оператор.
![]() |
---|
Этот класс можно использовать только с решениями для 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 - пространство имен