Compartir vía


Interfaces de objeto persistente

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

Actualmente se definen las siguientes interfaces de objeto persistente:

  • IPersistStream
  • IPersistStreamInit
  • IPersistStorage
  • IPersistFile
  • IPersistMoniker
  • IPersistMemory
  • IPersistPropertyBag

Los implementadores eligen qué interfaces de objeto persistente admite un objeto en función de cómo se va a usar 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 objetos persistentes, el implementador dice de forma eficaz: "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.

Categoría Normalmente se admiten interfaces de objetos 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 pueda almacenar sus datos solo en un archivo plano probablemente solo usará IPersistStreamInit, IPersistMonikery 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.

inicializar objetos persistentes