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), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.
См. также
Ссылки
Microsoft.VisualStudio.Tools.Applications - пространство имен
Другие ресурсы
Управление документами на сервере с помощью класса ServerDocument
Манифесты приложения и развертывания в решениях Office
Доступ к данным в документах на сервере
Практическое руководство. Вставка данных в книгу на сервере
Практическое руководство. Извлечение кэшированных данных из рабочей книги на сервере
Практическое руководство. Изменение кэшированных данных в книге на сервере