Compartir a través de


Interfaces de objeto persistente

Un objeto persistente implementa una o varias interfaces de objeto persistentes. Los clientes usan interfaces de objeto persistentes para indicar a esos objetos cuándo y dónde almacenar su estado. Todas las interfaces de objetos persistentes se derivan de IPersist, por lo que cualquier objeto que implementa cualquier interfaz de objeto persistente también implementa IPersist.

Actualmente se definen las siguientes interfaces de objeto persistente:

Los implementadores eligen qué interfaces de objeto persistente admite un objeto en función de cómo se use el objeto. Al no admitir ninguna interfaz de objeto persistente, el implementador dice eficazmente: "El estado de este objeto no se puede almacenar de forma persistente". Al admitir una o varias interfaces de objeto persistentes, el implementador dice eficazmente: "El estado de este objeto se puede almacenar de forma persistente en uno o varios medios de almacén de datos".

Por ejemplo, en la tabla siguiente se enumeran varios tipos de objetos que permiten la compatibilidad con diferentes interfaces de objetos persistentes.

Category Normalmente se admiten interfaces de objeto persistentes
Monikers
Ipersiststream
Objetos incrustables OLE
IPersistStorage, IPersistFile
Controles ActiveX
IPersistStreamInit, IPersistStorage, IPersistMemory, IPersistPropertyBag, IPersistMoniker
Objetos de documento ActiveX
IPersistStorage, IPersistFile

Los implementadores de cliente también pueden elegir qué interfaces de objeto persistentes puede usar el cliente. Las interfaces que usa un cliente suelen determinarse por dónde el cliente puede almacenar sus propios datos. Un cliente que solo pueda almacenar sus datos en un archivo plano probablemente solo usará IPersistStreamInit, IPersistMoniker e IPersistPropertyBag. (IPersistStreamInit puede reemplazar IPersistStream en la mayoría de las aplicaciones, ya que contiene esa definición y agrega un método de inicialización). Un cliente que pueda guardar sus datos en un archivo de almacenamiento estructurado usará, además, IPersistStorage.

Inicialización de objetos persistentes