Classe CompoundAction
Gestisce un gruppo di operazioni di modifica che vengono trattate come una sola operazione.
Questa API non è conforme a CLS. L'alternativa conforme a CLS è [None].
Gerarchia di ereditarietà
System.Object
Microsoft.VisualStudio.Package.CompoundActionBase
Microsoft.VisualStudio.Package.CompoundAction
Spazio dei nomi: Microsoft.VisualStudio.Package
Assembly: Microsoft.VisualStudio.Package.LanguageService.9.0 (in Microsoft.VisualStudio.Package.LanguageService.9.0.dll)
Microsoft.VisualStudio.Package.LanguageService.10.0 (in Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
Microsoft.VisualStudio.Package.LanguageService.11.0 (in Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
Microsoft.VisualStudio.Package.LanguageService (in Microsoft.VisualStudio.Package.LanguageService.dll)
Sintassi
'Dichiarazione
<CLSCompliantAttribute(False)> _
Public Class CompoundAction _
Inherits CompoundActionBase
[CLSCompliantAttribute(false)]
public class CompoundAction : CompoundActionBase
Il tipo CompoundAction espone i seguenti membri.
Costruttori
Nome | Descrizione | |
---|---|---|
CompoundAction | Inizializza una nuova istanza di CompoundAction classe. |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
Abort | Termina l'azione composta corrente, generando tramite tutte le modifiche. (Esegue l'override di CompoundActionBase.Abort()). | |
Close | Chiude l'azione composta ed eseguire il commit delle modifiche al file di origine. (Esegue l'override di CompoundActionBase.Close()). | |
Dispose() | Libera tutte le risorse prima CompoundAction l'oggetto viene eliminato. | |
Dispose() | Libera tutte le risorse prima CompoundAction l'oggetto viene eliminato. (Ereditato da CompoundActionBase) | |
Equals | Determina se l'oggetto specificato equivale all'oggetto corrente. (Ereditato da Object) | |
Finalize | Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object) | |
FlushEditActions | Svuota le azioni in corso di modifica details composta corrente. (Esegue l'override di CompoundActionBase.FlushEditActions()). | |
GetHashCode | Funge da funzione hash per un determinato tipo. (Ereditato da Object) | |
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) | |
MemberwiseClone | Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object) | |
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
In alto
Campi
Nome | Descrizione | |
---|---|---|
action | interfaccia per un'azione di CompoundAction. (Ereditato da CompoundActionBase) | |
opened | specifica se un'azione composta è stata aperta. (Ereditato da CompoundActionBase) |
In alto
Note
Questa classe viene utilizzata per semplificare il wrapping di una raccolta di operazioni di modifica in un solo evento annullabile.Questo risultato si ottiene chiamando OpenCompoundAction metodo su IVsCompoundAction collegare che si ottiene dalla corrente IVsTextLines oggetto archiviato in Source oggetto.Quando questa classe viene eliminato da, IVsCompoundAction l'interfaccia viene chiusa e il commit di tutti gli eventi di modifica fatti a IVsTextLines oggetto come una sola operazione.
Note per gli implementatori
Questa classe contiene tutto il necessario per aprire una classe fornita azione composta Source oggetto e chiudere tale azione quando questa classe viene eliminato da.
Note per i chiamanti
Creare un'istanza di un oggetto CompoundAction oggetto con Source oggetto quando è necessario eseguire il wrapping di una o più operazioni di modifica che possono essere annullate in una singola azione.Quindi eseguire le operazioni di modifica come normale.quando il nuovo CompoundAction l'oggetto viene eliminato, le operazioni di modifica viene memorizzato come una sola azione.
Se si ha accesso a IVsTextView oggetto, utilizzare CompoundViewAction classe anziché come consente alla visualizzazione di testo ottimizzi le modifiche in modo che solo il risultato finale viene rappresentato dall'utente.
Esempi
In questo esempio viene illustrato come utilizzare CompoundAction classe.In questo esempio viene inserito un elenco di parole nella posizione corrente nel file di origine.senza CompoundAction oggetto, ciascuno degli inserimenti viene considerato come un evento distinto di modifica e richiede un'operazione di annullamento separata.tuttavia, con CompoundAction oggetto, l'intero elenco può essere interrotto con una singola operazione di annullamento.
using Microsoft.VisualStudio.Package
namespace MyLanguagePackage
{
class CMyLanguageService : LanguageService
{
// Insert the list of words, one per line.
void InsertWords(Source src,string[] wordList)
{
if (LastActiveTextView != null)
{
CompoundAction action = new CompoundAction(src,"Update source");
using (action)
{
int currentLine = 0;
int currentCol = 0;
LastActiveTextView.GetCaretPos(out currentLine, out currentCol);
// Insert list in reverse so the words appear in the proper
// order in the sourec file.
for (int i = wordList.Length - 1, i >= 0; i--)
{
string w = wordList[i] + "\n";
src.SetText(currentLine, currentCol, currentLine, currentCol, w);
}
}
}
}
}
}
Codice thread safe
Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.