Construtor ServerDocument (array<Byte[], String)
Inicializa uma nova instância da classe ServerDocument que usa uma matriz de bytes que representa o documento a ser carregado e a extensão de nome de arquivo do documento.
Namespace: Microsoft.VisualStudio.Tools.Applications
Assembly: Microsoft.VisualStudio.Tools.Applications.ServerDocument (em Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)
Sintaxe
'Declaração
Public Sub New ( _
bytes As Byte(), _
fileType As String _
)
public ServerDocument(
byte[] bytes,
string fileType
)
Parâmetros
- bytes
Tipo: array<System.Byte[]
Uma matriz de bytes que representa o documento a ser carregado.
- fileType
Tipo: System.String
A extensão de nome de arquivo de documento que é armazenado no parâmetro de bytes , precedido por um ponto (.) — por exemplo, “.xlsx” ou “.docx”.
Exceções
Exceção | Condição |
---|---|
ArgumentNullException | O parâmetro de bytes é nulluma referência nula (Nothing no Visual Basic) ou vazio. - ou - O parâmetro de fileType é nulluma referência nula (Nothing no Visual Basic) ou vazio ou consiste inteiramente em caracteres de espaço em branco. |
UnknownCustomizationFileException | O parâmetro de fileType especifica uma extensão de nome de arquivo que não é suportada por Visual Studio Tools for Office Runtime. |
DocumentCustomizedWithPreviousRuntimeException | O arquivo especificado por documentPath tem uma personalização que não é criada no 2010 Visual Studio Tools for Office Runtime ou Visual Studio para o Microsoft Office system (tempo de execução de versão 3,0). |
Comentários
Use esse construtor para acessar informações de manifesto dos dados armazenados em cache ou de implantação em um documento que já está na memória. Quando você usa esse construtor, o documento está aberto com acesso de leitura/gravação.
O parâmetro de fileType é usado somente para determinar o tipo de documento que é armazenado na matriz de bytes. O valor de fileType é mapeado para um dos tipos de arquivo que são suportados para personalizações de um documento nível. Nenhuma tentativa é feita para abrir o arquivo. Você pode opcionalmente passar em um nome de arquivo completo (por exemplo, “Workbook1.xlsx”), mas se você fizer isso, somente a extensão de nome de arquivo é usado. Para obter mais informações sobre tipos de arquivo suportados, consulte Arquitetura de personalizações no nível do documento.
Para acessar a matriz de bytes para o documento após chamado esse construtor, use a propriedade de Document .
Exemplos
O exemplo de código usa o construtor de ServerDocument(array<Byte[], String) para criar um novo ServerDocument de uma matriz de bytes que contém uma pasta de trabalho do Excel com a extensão de nome de arquivo .xlsx. O exemplo usa a propriedade de Document para exibir o número de bytes no documento.
Este exemplo requer:
Um projeto de aplicativo do console ou qualquer outro projeto do Office não.
Referências para os seguintes conjuntos:
Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll e Microsoft.VisualStudio.Tools.Applications.Runtime.dll (se o projeto utiliza .NET Framework 4 ou .NET Framework 4.5).
ou
Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll e Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (se o projeto utiliza o .NET Framework 3.5).
Imports (Visual Basic) ou instruções de using (para C#) para Microsoft.VisualStudio.Tools.Applications e namespaces de Microsoft.VisualStudio.Tools.Applications.Runtime na parte superior do arquivo 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();
}
}
Segurança do .NET Framework
- Confiança total para o chamador imediato. O membro não pode ser usado por código parcialmente confiável. Para obter mais informações, consulte Usando bibliotecas de código parcialmente confiável.