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


ServerDocument Класс (2007 System)

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

Предоставляет доступ к кэшированным данным и данным настройки в документе, являющемся частью настроек уровня документов Microsoft Office Excel 2007 и Microsoft Office Word 2007.

Пространство имен:  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 ServerDocument _
    Implements IDisposable
'Применение
Dim instance As ServerDocument
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public sealed class ServerDocument : IDisposable

Заметки

Для управления определенными аспектами настроек уровня документов на компьютере, на котором не установлен Excel или Word, следует использовать класс ServerDocument.

Для выполнения общих задач используются члены класса ServerDocument.

  • Для получения доступа к данным кэша документа на сервере и для их изменения следует использовать свойство CachedData.

  • Чтобы программным способом добавить или удалить настройку в документе, используются методы AddCustomization и RemoveCustomization.

  • Для получения доступа к URL-адресу манифеста развертывания, связанному с документом, и для его изменения следует использовать свойство DeploymentManifestUrl.

Дополнительные сведения см. в разделе Управление документами на сервере с помощью класса ServerDocument.

Выбор конструктора

Для использования класса ServerDocument с целью получения доступа к кэшированным данным или к URL-адресу манифеста развертывания в документе, необходимо создать объект ServerDocument.

Существует два набора конструкторов ServerDocument.

  • Набор конструкторов, который можно использовать для доступа к документу, который уже открыт.

  • Набор конструкторов, который можно использовать для доступа к документу, который находится на диске.

Доступ к документу в памяти

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

Эти конструкторы принимают массив байтов или Stream, который представляет документ в памяти. Это полезно в тех случаях, когда требуется изменить кэшированные данные или манифест приложения в документе, прежде чем передавать их потоком в объект назначения с помощью протокола HTTP. Чтобы использовать эти конструкторы, в документе уже должна быть настройка Visual Studio Tools for Office; в противном случае они вызовут исключение CannotLoadManifestException.

Доступ к документу на диске

Чтобы получить доступ к документу на диске, используется один из следующих конструкторов.

Эти конструкторы принимают полный путь к документу, который требуется открыть. По умолчанию документ открывается с правом доступа на чтение/запись. Если необходимо открыть документ с доступом только для чтения или только для записи, используется конструктор с параметром FileAccess.

Понимание различных версий класса ServerDocument

Visual Studio Tools for Office предоставляет различные версии класса ServerDocument для решений Microsoft Office 2003 и системы Microsoft Office 2007. Данную версию класса ServerDocument можно использовать только с решениями, созданными с помощью шаблонов проекта уровня документов для Word 2007 и Excel 2007.

Для работы с решением, созданным с помощью шаблонов проекта уровня документов для Word 2003 и Excel 2003, следует использовать класс ServerDocument в пространстве имен Microsoft.VisualStudio.Tools.Applications.Runtime.

Дополнительные сведения см. в разделе Управление документами на сервере с помощью класса ServerDocument. Пример кода, демонстрирующий использование обеих версий класса ServerDocument в одном файле кода, см. в разделе Практическое руководство. Написание кода, в котором используются обе версии класса ServerDocument.

Примеры

В следующем примере кода создается новый класс ServerDocument, который сначала загружает указанный документ, а затем отображает URL-адрес манифеста развертывания для настройки Visual Studio Tools for Office, прикрепленного к документу. Перед созданием объекта в коде используется метод GetCustomizationVersion для проверки того, создана ли настройка с помощью Visual Studio Tools for Office, версия 3.0 (cреда выполнения). Это единственная среда выполнения, с которой совместим класс ServerDocument. Дополнительные сведения см. в разделе Управление документами на сервере с помощью класса ServerDocument.

Для этого примера требуются ссылки на сборки Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll, Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll и операторы Imports (в Visual Basic) или using (в C#) для пространств имен Microsoft.VisualStudio.Tools.Applications и Microsoft.VisualStudio.Tools.Applications.Runtime в начале файла с кодом.

Private Sub CreateServerDocumentFromPath(ByVal documentPath As String)
    Dim runtimeVersion As Integer = 0
    Dim serverDocument1 As ServerDocument = Nothing

    Try
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath)
        If runtimeVersion = 3 Then
            serverDocument1 = New ServerDocument(documentPath)
            MessageBox.Show("The URL of the deployment manifest is: " & vbLf & _
                serverDocument1.DeploymentManifestUrl.ToString())
        End If

    Catch ex As System.IO.FileNotFoundException
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.")
    Catch ex As UnknownCustomizationFileException
        System.Windows.Forms.MessageBox.Show("The specified document has a file " & _
            "extension that is not supported by Visual Studio Tools for Office.")
    Finally
        If Not (serverDocument1 Is Nothing) Then
            serverDocument1.Close()
        End If
    End Try
End Sub
private void CreateServerDocumentFromPath(string documentPath)
{
    int runtimeVersion = 0;
    ServerDocument serverDocument1 = null;

    try
    {
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath);
        if (runtimeVersion == 3)
        {
            serverDocument1 = new ServerDocument(documentPath);
            MessageBox.Show("The URL of the deployment manifest is: \n" +
                serverDocument1.DeploymentManifestUrl.ToString());
        }
    }
    catch (System.IO.FileNotFoundException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
    }
    catch (UnknownCustomizationFileException)
    {
        System.Windows.Forms.MessageBox.Show("The specified document has a file " +
            "extension that is not supported by Visual Studio Tools for Office.");
    }
    finally
    {
        if (serverDocument1 != null)
            serverDocument1.Close();
    }
}

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

System.Object
  Microsoft.VisualStudio.Tools.Applications.ServerDocument

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

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

См. также

Ссылки

ServerDocument - члены

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

Другие ресурсы

Управление документами на сервере с помощью класса ServerDocument

Манифесты приложения и развертывания в решениях Office

Доступ к данным в документах на сервере

Практическое руководство. Вставка данных в книгу на сервере

Практическое руководство. Извлечение кэшированных данных из рабочей книги на сервере

Практическое руководство. Изменение кэшированных данных в книге на сервере