RemoveCustomization
Una funzionalità che hanno aggiunto nell'ultima versione di Microsoft Visual Studio 2005 Tools for Microsoft Office System 2003 (non credo che esista nella storia nome di prodotto più lungo :-) è la possibilità di rimuovere tutte le caratteristiche di customizzazione relative a VSTO in modo semplice. Qual'è l'obiettivo? Semplice, pensate a un documento per la creazione di un'offerta commerciale, oggi possiamo arricchirlo con dozzine di controlli (presenti sul doc o nell'action pane), scrivere del bel codice .NET per semplificare la compiliazione dell'offerta stessa, ma al termine del lavoro vogliamo inviare al cliente SOLO il documento e NON il codice (l'assembly e le altre caratteristiche di customizzazione), ecco il motivo del metodo RemoveCustomization.
Nelle versioni successive non era così immediato scollegare un documento dal suo expansion pack, schema o custom property, niente di impossibile ma certamente non intuitivo.
Il metodo RemoveCustomization di Microsoft.Office.Tools.Excel.Workbook o Microsoft.Office.Tools.Word.Document ha il compito di togliere tutte le custom property di vsto e cestinare l'ActiveX control presente sul documento; nella RTM dovrebbe togliere anche l'ActionPane. Non rimuove però i managed control presenti sul documento, quello sarà compito nostro.
Un esempio (ThisDocument.cs):
private void CreaCopiaPerIlCliente()
{
this.SaveAs(...);
this.RemoveCustomization();
}