Costruttore ServerDocument (array<Byte , String)
Inizializza una nuova istanza della classe ServerDocument utilizzando una matrice di byte che rappresenta il documento da caricare e l'estensione di file del documento.
Spazio dei nomi: Microsoft.VisualStudio.Tools.Applications
Assembly: Microsoft.VisualStudio.Tools.Applications.ServerDocument (in Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll)
Sintassi
'Dichiarazione
Public Sub New ( _
bytes As Byte(), _
fileType As String _
)
public ServerDocument(
byte[] bytes,
string fileType
)
Parametri
- bytes
Tipo: array<System.Byte[]
Matrice di byte che rappresenta il documento da caricare.
- fileType
Tipo: System.String
Estensione di file del documento archiviato nel parametro bytes, preceduta da un punto (.). Ad esempio, ".xlsx" o ".docx".
Eccezioni
Eccezione | Condizione |
---|---|
ArgumentNullException | Il parametro bytes è nullriferimento null (Nothing in Visual Basic) oppure vuoto. In alternativa Il parametro fileType è nullriferimento null (Nothing in Visual Basic), vuoto, oppure composto unicamente da spazi vuoti. |
UnknownCustomizationFileException | L'estensione di file specificata dal parametro fileType non è supportata dal Runtime di Visual Studio Tools per Office. |
DocumentCustomizedWithPreviousRuntimeException | Il file specificato da documentPath dispone di una personalizzazione non creata con Visual Studio 2010 tools per Office runtime o Visual Studio Tools per Microsoft Office System (versione runtime 3,0). |
Note
Utilizzare questo costruttore per accedere ai dati memorizzati nella cache o alle informazioni sul manifesto di distribuzione in un documento già in memoria.Quando si utilizza questo costruttore, il documento viene aperto con accesso in lettura/scrittura.
Il parametro fileType viene utilizzato soltanto per determinare il tipo di documento archiviato nella matrice di byte.Viene eseguito il mapping del valore di fileType a uno dei tipi di file supportati per le personalizzazioni a livello di documento.Non è stato eseguito alcun tentativo per aprire il file.È inoltre possibile passare un nome file completo (ad esempio, "Workbook1.xlsx"). Procedendo in questo modo, tuttavia, viene utilizzata soltanto l'estensione di file.Per ulteriori informazioni sui tipi di file supportati, vedere Architettura delle personalizzazioni a livello di documento.
Per accedere alla matrice di byte del documento dopo la chiamata al costruttore, utilizzare la proprietà Document.
Esempi
Nell'esempio di codice riportato di seguito viene utilizzato il costruttore ServerDocument(array<Byte[], String) per creare un nuovo oggetto ServerDocument da una matrice di byte contenente una cartella di lavoro di Excel con estensione di file xlsx.Viene quindi utilizzata la proprietà Document per visualizzare il numero di byte del documento.
L'esempio presenta i seguenti requisiti:
Progetto di applicazione console o qualche altro progetto non-Office.
Riferimenti ai seguenti assembly:
Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll e Microsoft.VisualStudio.Tools.Applications.Runtime.dll (se il progetto è destinato a .NET Framework 4 o .NET Framework 4.5).
oppure
Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll e Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll (se il progetto è destinato a .NET Framework 3.5).
Istruzioni Imports (per Visual Basic) o using (per C#) per gli spazi dei nomi Microsoft.VisualStudio.Tools.Applications e Microsoft.VisualStudio.Tools.Applications.Runtime all'inizio del file di codice
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();
}
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.