Condividi tramite


Interfacce di oggetti persistenti

Un oggetto permanente implementa una o più interfacce oggetto persistenti. I client usano interfacce di oggetto persistenti per indicare agli oggetti quando e dove archiviare lo stato. Tutte le interfacce oggetto persistenti sono derivate da IPersist, quindi qualsiasi oggetto che implementa qualsiasi interfaccia oggetto persistente implementa anche IPersist.

Sono attualmente definite le interfacce oggetto persistenti seguenti:

Gli implementatori scelgono quali interfacce oggetto persistenti supportano un oggetto a seconda della modalità di utilizzo dell'oggetto. Non supportando alcuna interfaccia oggetto persistente, l'implementatore sta dicendo in modo efficace: "Questo stato dell'oggetto non può essere archiviato in modo permanente". Supportando una o più interfacce di oggetti persistenti, l'implementatore afferma in modo efficace: "Questo stato dell'oggetto può essere archiviato in modo permanente in uno o più supporti di archiviazione dati".

Nella tabella seguente, ad esempio, sono elencati diversi tipi di oggetto che consentono il supporto per interfacce di oggetti persistenti diverse.

Category Interfacce di oggetti persistenti in genere supportate
Moniker
Ipersiststream
Oggetti incorporabili OLE
IPersist Archiviazione, IPersistFile
Controlli ActiveX
IPersistStreamInit, IPersist Archiviazione, IPersistMemory, IPersistPropertyBag, IPersistMoniker
Oggetti documento ActiveX
IPersist Archiviazione, IPersistFile

Gli implementatori client possono anche scegliere quali interfacce oggetto persistenti possono usare il client. Le interfacce usate da un client sono in genere determinate dalla posizione in cui il client può archiviare i propri dati. Un client in grado di archiviare i dati solo in un file flat userà probabilmente solo IPersistStreamInit, IPersistMoniker e IPersistPropertyBag. IPersistStreamInit può sostituire IPersistStream nella maggior parte delle applicazioni, perché contiene tale definizione e aggiunge un metodo di inizializzazione. Un client in grado di salvare i dati in un file di archiviazione strutturato userà anche IPersist Archiviazione.

Inizializzazione di oggetti persistenti