ExtensibleClassFactory Classe

Definizione

Consente la personalizzazione di oggetti gestiti estesi da oggetti non gestiti durante la creazione.

C#
public sealed class ExtensibleClassFactory
C#
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ExtensibleClassFactory
Ereditarietà
ExtensibleClassFactory
Attributi

Esempio

Registra un delegate oggetto che verrà chiamato ogni volta che un'istanza di un tipo gestito che si estende da un tipo non gestito deve allocare l'oggetto non gestito aggregato. Si delegate prevede di allocare e aggregare l'oggetto non gestito e viene chiamato al posto di un CoCreateInstanceoggetto . Questa routine deve essere chiamata nel contesto dell'inizializzatore static per la classe per cui verranno effettuati i callback.

C#
using System;
using System.Runtime.InteropServices;

public class CallBack
{
   public IntPtr Activate(IntPtr Aggregator)
   {
      ECFSRV32Lib.ObjectActivator oCOM = new ECFSRV32Lib.ObjectActivator();
      ECFSRV32Lib.IObjectActivator itf = (ECFSRV32Lib.IObjectActivator)oCOM;
      return (IntPtr) itf.CreateBaseComponent((int)Aggregator);
   }
}

//
// The EcfInner class. First .NET class derived directly from COM class.
//
public class EcfInner : ECFSRV32Lib.BaseComponent
{
   static CallBack callbackInner;

   static void RegisterInner()
   {
      callbackInner = new CallBack();
      System.Runtime.InteropServices.ExtensibleClassFactory.RegisterObjectCreationCallback(new System.Runtime.InteropServices.ObjectCreationDelegate(callbackInner.Activate));
   }

   //This is the static initializer.
   static EcfInner()
   {
      RegisterInner();
   }
}

Commenti

Consente ExtensibleClassFactory agli utenti di specificare un delegate oggetto denominato durante la costruzione di un wrapper chiamabile di runtime (RCW) che fornisce un'istanza dell'oggetto COM sottostante. In effetti, il callback funge da class factory per l'oggetto COM eseguito da RCW. Senza il callback, Common Language Runtime crea l'oggetto COM sottostante chiamando CoCreateInstance. Questo callback offre un modo alternativo di attivare l'oggetto sottostante, ad esempio con un moniker COM o fornendo un oggetto singleton. Il RegisterObjectCreationCallback metodo deve essere chiamato nell'inizializzatore static della classe che estende RCW. Per tipo di oggetto è consentito un callback per la creazione di oggetti. Quando l'rcW estendibile viene attivato, il callback viene registrato. Quando l'oggetto COM sottostante deve essere creato, il callback viene chiamato per fornire un riferimento all'oggetto. Il callback deve restituire un IUnknown puntatore dell'interfaccia per l'oggetto base.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
RegisterObjectCreationCallback(ObjectCreationDelegate)

Registra un oggetto delegate che verrà chiamato quando un'istanza di un tipo gestito estesa da un tipo non gestito deve allocare l'oggetto aggregato non gestito.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Prodotto Versioni
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1