Share via


ServerDocument (Clase) (2003 System)

Actualización: noviembre 2007

Proporciona acceso a los datos almacenados en memoria caché y al manifiesto de aplicación de un documento de Microsoft Office Word o de un libro de Microsoft Office Excel.

Espacio de nombres:  Microsoft.VisualStudio.Tools.Applications.Runtime
Ensamblado:  Microsoft.VisualStudio.Tools.Applications.Runtime (en Microsoft.VisualStudio.Tools.Applications.Runtime.dll)

Sintaxis

'Declaración
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public NotInheritable Class ServerDocument _
    Implements IDisposable
'Uso
Dim instance As ServerDocument
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public sealed class ServerDocument : IDisposable

Comentarios

La clase ServerDocument tiene dos propósitos principales:

  • Permite tener acceso a los datos almacenados en memoria caché y al manifiesto de aplicación de un documento sin iniciar Word o Excel.

  • Permite asociar o quitar ensamblados de personalización mediante programación.

Para tener acceso a los datos almacenados en memoria caché o al manifiesto de aplicación en un documento, debe crear primero un objeto ServerDocument y pasar el documento a uno de los constructores ServerDocument. Puede tener acceso a los datos almacenados en caché mediante la propiedad CachedData y puede tener acceso al manifiesto de aplicación mediante la propiedad AppManifest. El manifiesto de aplicación proporciona información sobre los ensamblados de personalización que están asociados al documento. Para obtener más información, vea Manifiestos de implementación y aplicación en soluciones de Office.

Para agregar o quitar una personalización, use los métodos estáticos AddCustomization y RemoveCustomization. Estos métodos son útiles si desea agregar o quitar una personalización cuando el documento no está en el equipo de desarrollo. Sólo puede llamar a estos métodos cuando el equipo tiene instalado Word o Excel, porque estos métodos inician Word y Excel para agregar o quitar la personalización.

Elegir el constructor que se va a usar

Hay dos conjuntos de constructores de ServerDocument:

  • Un conjunto que puede usar para tener acceso a un documento que ya se ha abierto en la memoria.

  • Un conjunto que puede usar para tener acceso a un documento almacenado en disco.

Acceso a un documento almacenado en memoria

Para tener acceso a un documento que ya se ha abierto en la memoria, use uno de los constructores siguientes:

Estos constructores aceptan una matriz de bytes o un objeto Stream que representa el documento en memoria. Esto resulta útil si desea modificar los datos almacenados en memoria caché o el manifiesto de aplicación del documento antes de transmitirlo en secuencias a un destino mediante el protocolo HTTP. Para usar estos constructores, el documento debe tener ya una personalización de Visual Studio Tools para Office; de lo contrario, estos constructores producen una excepción CannotLoadManifestException.

Acceso a un documento almacenado en disco

Para tener acceso a un documento que se encuentra en el disco, use uno de los constructores siguientes:

Estos constructores aceptan la ruta de acceso completa del documento que desea abrir. El documento ya debe tener una personalización de Visual Studio Tools para Office.

De forma predeterminada, el documento se abre con acceso de lectura y escritura. Si desea abrir el documento con acceso de sólo lectura o de sólo escritura, use el constructor que tiene un parámetro FileAccess.

Si desea abrir un documento que todavía no tiene una personalización de Visual Studio Tools para Office, use un constructor que tenga el parámetro booleano onClient. Si establece este parámetro en true, el motor en tiempo de ejecución de Visual Studio Tools para Office creará un control de almacenamiento vacío en tiempo de ejecución en el documento. Esto resulta útil si desea agregar los datos almacenados en memoria caché a un documento que no tiene todavía una personalización. El equipo cliente debe tener instalado Word o Excel para poder llamar al constructor ServerDocument, porque Visual Studio Tools para Office Runtime inicia Word o Excel para crear el control de almacenamiento en tiempo de ejecución. Para obtener más información sobre el Control de almacenamiento en tiempo de ejecución, vea Información general acerca del control de almacenamiento del motor en tiempo de ejecución.

Ejemplos

En el ejemplo de código siguiente se crea un nuevo ServerDocument que carga un documento especificado y muestra luego los nombres de todos los objetos de la caché de datos del documento. Este ejemplo requiere una referencia al ensamblado Microsoft.VisualStudio.Tools.Applications.Runtime.dll y una instrucción Imports (en Visual Basic) o using (en C#) para el espacio de nombres Microsoft.VisualStudio.Tools.Applications.Runtime en la parte superior del archivo de código.

Private Sub CreateServerDocumentOnClient(ByVal fileName As String)
    If ServerDocument.IsCustomized(fileName) Then
        Dim serverDocument1 As ServerDocument = Nothing
        Try
            serverDocument1 = New ServerDocument(fileName, True)
            Dim stringBuilder1 As New System.Text.StringBuilder()

            ' Display all of the cached data items 
            ' in the document.
            Dim hostItem1 As CachedDataHostItem
            For Each hostItem1 In serverDocument1.CachedData.HostItems
                stringBuilder1.Append(vbLf + "Namespace and class: ")
                stringBuilder1.Append(hostItem1.Id + vbLf)
                Dim dataItem1 As CachedDataItem
                For Each dataItem1 In hostItem1.CachedData
                    stringBuilder1.Append("     Data item: ")
                    stringBuilder1.Append(dataItem1.Id + vbLf)
                Next dataItem1
            Next hostItem1
            MsgBox(stringBuilder1.ToString())
        Finally
            If Not serverDocument1 Is Nothing Then
                serverDocument1.Close()
            End If
        End Try
    Else
        MsgBox("The specified document is not " + _
            "customized.")
    End If
End Sub
private void CreateServerDocumentOnClient(string fileName)
{
    if (ServerDocument.IsCustomized(fileName))
    {
        ServerDocument serverDocument1 = null;
        try
        {
            serverDocument1 = new ServerDocument(fileName,
                true);
            System.Text.StringBuilder stringBuilder1 =
                new System.Text.StringBuilder();

            // Display all of the cached data items 
            // in the document.
            foreach (CachedDataHostItem hostItem1 in
                serverDocument1.CachedData.HostItems)
            {
                stringBuilder1.Append("\nNamespace and class: ");
                stringBuilder1.Append(hostItem1.Id + "\n");
                foreach (CachedDataItem dataItem1 in
                    hostItem1.CachedData)
                {
                    stringBuilder1.Append("     Data item: ");
                    stringBuilder1.Append(dataItem1.Id + "\n");
                }
            }
            MessageBox.Show(stringBuilder1.ToString());
        }
        finally
        {
            if (serverDocument1 != null)
                serverDocument1.Close();
        }
    }
    else
    {
        MessageBox.Show("The specified document is not " +
            "customized.");
    }
}

Jerarquía de herencia

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

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

ServerDocument (Miembros)

Microsoft.VisualStudio.Tools.Applications.Runtime (Espacio de nombres)

Otros recursos

Acceso a datos de documentos en el servidor

Cómo: Insertar datos en un libro ubicado en un servidor

Cómo: Recuperar los datos almacenados en la memoria caché de un libro ubicado en un servidor

Cómo: Cambiar los datos almacenados en caché en un libro ubicado en un servidor