ServerDocument (Constructor) (array<Byte , String)
Inicializa una nueva instancia de la clase ServerDocument utilizando una matriz de bytes que representa el documento que se va a cargar y la extensión de nombre de archivo del documento.
Espacio de nombres: Microsoft.VisualStudio.Tools.Applications
Ensamblado: Microsoft.VisualStudio.Tools.Applications.ServerDocument (en Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)
Sintaxis
'Declaración
Public Sub New ( _
bytes As Byte(), _
fileType As String _
)
public ServerDocument(
byte[] bytes,
string fileType
)
Parámetros
- bytes
Tipo: array<System.Byte[]
Matriz de bytes que representa el documento que se va a cargar.
- fileType
Tipo: System.String
Extensión de nombre de archivo del documento que está almacenada en el parámetro bytes, precedida de un punto (.), por ejemplo, ".xlsx" o ".docx".
Excepciones
Excepción | Condición |
---|---|
ArgumentNullException | El parámetro bytes es nullreferencia null (Nothing en Visual Basic) o está vacío. O bien El parámetro fileType es nullreferencia null (Nothing en Visual Basic) o está vacío, o se compone únicamente de caracteres de espacio en blanco. |
UnknownCustomizationFileException | El parámetro fileType especifica una extensión de nombre de archivo que no se admite en Runtime de Microsoft Visual Studio Tools para Office. |
DocumentCustomizedWithPreviousRuntimeException | El archivo especificado por documentPath tiene una personalización no creada con Visual Studio 2010 Tools para Office Runtime o herramientas de Visual Studio tools para Microsoft Office system (versión 3,0 del runtime). |
Comentarios
Utilice este constructor para tener acceso a los datos almacenados en memoria caché o a la información del manifiesto de implementación de un documento que ya está en memoria.Cuando utiliza este constructor, el documento se abre con acceso de lectura y escritura.
El parámetro fileType sólo se utiliza para determinar el tipo de documento que está almacenado en una matriz de bytes.El valor de fileType se asigna a uno de los tipos de archivo que se admiten en las personalizaciones de nivel de documento.No se ha intentado abrir el archivo.Si lo desea, también puede pasar un nombre de archivo completo (por ejemplo, "Libro1.xlsx"), pero si hace esto, sólo se utilizará la extensión de nombre de archivo.Para obtener más información sobre los tipos de archivos compatibles, vea Arquitectura de las personalizaciones de nivel de documento.
Para tener acceso a la matriz de bytes del documento después de llamar a este constructor, utilice la propiedad Document.
Ejemplos
En el ejemplo de código siguiente se utiliza el constructor ServerDocument(array<Byte[], String) para crear un nuevo objeto ServerDocument a partir de una matriz de bytes que contiene un libro de Excel con la extensión de nombre de archivo .xlsx.En el ejemplo se utiliza la propiedad Document para mostrar el número de bytes del documento.
Para este ejemplo se necesita:
Un proyecto de aplicación de consola o algún otro proyecto que no es de Office.
Referencias a los siguientes ensamblados:
Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll y Microsoft.VisualStudio.Tools.Applications.Runtime.dll (si el proyecto tiene como destino .NET Framework 4 o .NET Framework 4.5).
o bien
Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll and Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (si el proyecto está dirigido a .NET Framework 3.5).
Instrucciones Imports (para Visual Basic) o using (para C#) para los espacios de nombres Microsoft.VisualStudio.Tools.Applications y Microsoft.VisualStudio.Tools.Applications.Runtime en la parte superior de su archivo de código.
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();
}
}
Seguridad de .NET Framework
- Plena confianza para el llamador inmediato. Un código de confianza parcial no puede utilizar este miembro. Para obtener más información, vea Utilizar bibliotecas de código que no es de plena confianza.
Vea también
Referencia
Microsoft.VisualStudio.Tools.Applications (Espacio de nombres)