Metodo ServerDocument.Save (System 2007)
Aggiornamento: novembre 2007
Salva le eventuali modifiche apportate al documento utilizzando la classe ServerDocument.
Spazio dei nomi: Microsoft.VisualStudio.Tools.Applications
Assembly: Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0 (in Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll)
Sintassi
Public Sub Save
Dim instance As ServerDocument
instance.Save()
public void Save()
Eccezioni
Eccezione | Condizione |
---|---|
DocumentClosedException | L'oggetto ServerDocument è stato chiuso. |
MissingHostItemIdException | La proprietà Id di un oggetto CachedDataHostItem è nullriferimento null (Nothing in Visual Basic) o vuota. |
MissingDataIdException | La proprietà Id di un oggetto CachedDataItem è nullriferimento null (Nothing in Visual Basic) o vuota. |
MissingTypeException | La proprietà DataType di un oggetto CachedDataItem è nullriferimento null (Nothing in Visual Basic) o vuota. |
Note
Il metodo Save salva le eventuali modifiche apportate ai dati memorizzati nella cache oppure all'URL del manifesto di distribuzione nel documento. Se l'oggetto ServerDocument viene creato utilizzando un documento su disco, le modifiche vengono salvate su disco. Se l'oggetto ServerDocument viene creato utilizzando un documento in memoria, le modifiche vengono salvate nel buffer di memoria.
Esempi
Nell'esempio di codice riportato di seguito viene creato un nuovo oggetto ServerDocument per una cartella di lavoro di Excel specificata. Viene quindi modificato il valore di una stringa memorizzata nella cache di un foglio di lavoro utilizzando il metodo SerializeDataInstance e la modifica viene salvata utilizzando il metodo Save.
In questo esempio è necessario specificare all'inizio del file di codice un riferimento agli assembly Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll e Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll e le istruzioni Imports, in Visual Basic, o using, in C#, per gli spazi dei nomi Microsoft.VisualStudio.Tools.Applications e Microsoft.VisualStudio.Tools.Applications.Runtime. Nell'esempio si presuppone inoltre che la cartella di lavoro specificata includa una personalizzazione con una classe Sheet1 nello spazio dei nomi ExcelWorkbook1 e una stringa memorizzata nella cache della classe Sheet1 denominata CachedString.
Private Sub ModifyCachedString(ByVal documentPath As String)
Dim runtimeVersion As Integer = 0
Dim serverDocument1 As ServerDocument = Nothing
Try
runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath)
If runtimeVersion <> 3 Then
MessageBox.Show("This document does not have a Visual Studio Tools for Office " & _
"customization, or it has a customization that was created with a version of " & _
"the runtime that is incompatible with this version of the ServerDocument class.")
Return
End If
If ServerDocument.IsCacheEnabled(documentPath) Then
serverDocument1 = New ServerDocument(documentPath)
Dim hostItem1 As CachedDataHostItem = _
serverDocument1.CachedData.HostItems("ExcelWorkbook1.Sheet1")
Dim dataItem1 As CachedDataItem = hostItem1.CachedData("CachedString")
If dataItem1 IsNot Nothing AndAlso _
Type.GetType(dataItem1.DataType).Equals(GetType(String)) Then
dataItem1.SerializeDataInstance("This is the new cached string value.")
serverDocument1.Save()
End If
Else
MessageBox.Show("The specified document does not have cached data.")
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
End Try
End Sub
private void ModifyCachedString(string documentPath)
{
int runtimeVersion = 0;
ServerDocument serverDocument1 = null;
try
{
runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath);
if (runtimeVersion != 3)
{
MessageBox.Show("This document does not have a Visual Studio Tools for " +
"Office customization, or it has a customization that was created with " +
"a version of the runtime that is incompatible with this version of the " +
"ServerDocument class.");
return;
}
if (ServerDocument.IsCacheEnabled(documentPath))
{
serverDocument1 = new ServerDocument(documentPath);
CachedDataHostItem hostItem1 =
serverDocument1.CachedData.HostItems["ExcelWorkbook1.Sheet1"];
CachedDataItem dataItem1 = hostItem1.CachedData["CachedString"];
if (dataItem1 != null &&
Type.GetType(dataItem1.DataType) == typeof(string))
{
dataItem1.SerializeDataInstance("This is the new cached string value.");
serverDocument1.Save();
}
}
else
{
MessageBox.Show("The specified document does not have cached data.");
}
}
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();
}
}
Autorizzazioni
- 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.