Freigeben über


ServerDocument-Konstruktor (array<Byte , String)

Initialisiert eine neue Instanz der ServerDocument-Klasse und verwendet dabei ein Bytearray, welches das zu ladende Dokument darstellt, sowie die Dateinamenerweiterung des Dokuments.

Namespace:  Microsoft.VisualStudio.Tools.Applications
Assembly:  Microsoft.VisualStudio.Tools.Applications.ServerDocument (in Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)

Syntax

'Declaration
Public Sub New ( _
    bytes As Byte(), _
    fileType As String _
)
public ServerDocument(
    byte[] bytes,
    string fileType
)

Parameter

  • bytes
    Typ: array<System.Byte[]
    Ein Bytearray, welches das Dokument darstellt, das geladen werden soll.
  • fileType
    Typ: System.String
    Die Dateinamenerweiterung des Dokuments, die im bytes-Parameter gespeichert ist und der ein Punkt (.) vorangestellt wird, z. B. ".xlsx" oder ".docx".

Ausnahmen

Ausnahme Bedingung
ArgumentNullException

Der bytes-Parameter ist nullNULL-Verweis (Nothing in Visual Basic) oder leer.

– oder –

Der fileType-Parameter ist entweder nullNULL-Verweis (Nothing in Visual Basic) oder leer, oder er besteht nur aus Leerzeichen.

UnknownCustomizationFileException

Der fileType-Parameter gibt eine Dateinamenerweiterung an, die nicht von Visual Studio Tools for Office-Laufzeit unterstützt wird.

DocumentCustomizedWithPreviousRuntimeException

Die von documentPath angegebene Datei bietet eine Anpassung, die nicht mit Visual Studio 2010-Tools for Office-Laufzeit oder den Visual Studio-Tools für das Microsoft Office-System (Version 3.0 Runtime) erstellt wurde.

Hinweise

Verwenden Sie diesen Konstruktor, um auf die zwischengespeicherten Daten oder die Informationen zum Bereitstellungsmanifest in einem Dokument zuzugreifen, das bereits im Arbeitsspeicher vorhanden ist. Wenn Sie diesen Konstruktor verwenden, wird das Dokument mit Lese-/Schreibzugriff geöffnet.

Der fileType-Parameter wird nur zum Bestimmen des im Bytearray gespeicherten Dokumenttyps verwendet. Der Wert von fileType wird einem der Dateitypen zugeordnet, die für Anpassungen auf Dokumentebene unterstützt werden. Es wird nicht versucht, die Datei zu öffnen. Sie können optional einen vollständigen Namen übergeben (z. B. "Workbook1.xlsx"), aber dann wird nur die Dateinamenerweiterung verwendet. Weitere Informationen zu den unterstützten Dateitypen finden Sie unter Architektur von Anpassungen auf Dokumentebene.

Um nach dem Aufrufen dieses Konstruktors auf das Bytearray für das Dokument zuzugreifen, verwenden Sie die Document-Eigenschaft.

Beispiele

Im folgenden Codebeispiel wird der ServerDocument(array<Byte[], String)-Konstruktor verwendet, um ein neues ServerDocument aus einem Bytearray zu erstellen, das eine Excel-Arbeitsmappe mit der Dateinamenerweiterung .xlsx enthält. Im Beispiel wird anschließend die Document-Eigenschaft verwendet, um die Anzahl der Bytes im Dokument anzuzeigen.

Für dieses Beispiel sind erforderlich:

  • Ein Konsolenanwendungsprojekt oder ein anderes Nicht-Office-Projekt.

  • Verweise auf die folgenden Assemblys:

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll und Microsoft.VisualStudio.Tools.Applications.Runtime.dll (wenn das Projekt auf .NET Framework 4 abzielt)

      oder

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll und Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (wenn das Projekt auf .NET Framework 3.5 abzielt).

  • Imports-Anweisungen (für Visual Basic) oder using-Anweisungen (für C#) für Microsoft.VisualStudio.Tools.Applications- und Microsoft.VisualStudio.Tools.Applications.Runtime-Namespaces am Anfang der Codedatei.

Private Sub CreateServerDocumentFromByteArray(ByVal documentPath As String)
    Dim runtimeVersion As Integer = 0
    Dim serverDocument1 As ServerDocument = Nothing
    Dim stream As System.IO.FileStream = Nothing

    Try
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath)
        If runtimeVersion = 3 Then
            ' Read the file into a byte array.
            stream = New System.IO.FileStream(documentPath, System.IO.FileMode.Open, _
                System.IO.FileAccess.Read)
            Dim buffer(Fix(stream.Length)) As Byte
            stream.Read(buffer, 0, Fix(buffer.Length))

            ' Display the number of bytes in the document.
            serverDocument1 = New ServerDocument(buffer, "*.xlsx")
            MessageBox.Show("The Document property contains " & _
                serverDocument1.Document.Length.ToString() & " bytes.")
        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
        If Not (stream Is Nothing) Then
            stream.Close()
        End If
    End Try
End Sub
private void CreateServerDocumentFromByteArray(string documentPath)
{
    int runtimeVersion = 0;
    ServerDocument serverDocument1 = null;
    System.IO.FileStream stream = null;

    try
    {
        runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath);
        if (runtimeVersion == 3)
        {
            // Read the file into a byte array.
            stream = new System.IO.FileStream(
                documentPath, System.IO.FileMode.Open,
                System.IO.FileAccess.Read);
            byte[] buffer = new byte[(int)stream.Length];
            stream.Read(buffer, 0, (int)buffer.Length);

            // Display the number of bytes in the document.
            serverDocument1 = new ServerDocument(buffer,
                "*.xlsx");
            MessageBox.Show("The Document property contains " +
                serverDocument1.Document.Length.ToString() +
                " bytes.");
        }
    }
    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();
        if (stream != null)
            stream.Close();
    }
}

.NET Framework-Sicherheit

Siehe auch

Referenz

ServerDocument Klasse

ServerDocument-Überladung

Microsoft.VisualStudio.Tools.Applications-Namespace