ApplicationManager.CreateObject Método

Definición

Crea un objeto para el dominio de aplicación y el tipo de objeto especificados.

Sobrecargas

CreateObject(IApplicationHost, Type)

Crea un objeto para el dominio de aplicación especificado, basado en el tipo.

CreateObject(String, Type, String, String, Boolean)

Crea un objeto para el dominio de aplicación especificado basado en el tipo, las rutas de acceso virtual y física, y un valor booleano que indica el comportamiento del error si ya existe un objeto del tipo especificado.

CreateObject(String, Type, String, String, Boolean, Boolean)

Crea un objeto para el dominio de aplicación especificado, basado en el tipo, las rutas de acceso virtual y física, un valor booleano que indica el comportamiento de error si ya existe un objeto del tipo especificado, y un valor booleano que indica si se inician excepciones de error de inicialización del host.

CreateObject(IApplicationHost, Type)

Crea un objeto para el dominio de aplicación especificado, basado en el tipo.

public:
 System::Web::Hosting::IRegisteredObject ^ CreateObject(System::Web::Hosting::IApplicationHost ^ appHost, Type ^ type);
public System.Web.Hosting.IRegisteredObject CreateObject (System.Web.Hosting.IApplicationHost appHost, Type type);
member this.CreateObject : System.Web.Hosting.IApplicationHost * Type -> System.Web.Hosting.IRegisteredObject
Public Function CreateObject (appHost As IApplicationHost, type As Type) As IRegisteredObject

Parámetros

appHost
IApplicationHost

Un objeto IApplicationHost.

type
Type

Tipo del objeto que se va a crear.

Devoluciones

Un nuevo objeto del tipo especificado en type.

Excepciones

No existe una ruta de acceso física de la aplicación.

appHost es null.

o bien

type es null.

Comentarios

CreateObject se presenta en la versión 3.5 de .NET Framework. Para más información, vea Versiones y dependencias.

Se aplica a

CreateObject(String, Type, String, String, Boolean)

Crea un objeto para el dominio de aplicación especificado basado en el tipo, las rutas de acceso virtual y física, y un valor booleano que indica el comportamiento del error si ya existe un objeto del tipo especificado.

public:
 System::Web::Hosting::IRegisteredObject ^ CreateObject(System::String ^ appId, Type ^ type, System::String ^ virtualPath, System::String ^ physicalPath, bool failIfExists);
public System.Web.Hosting.IRegisteredObject CreateObject (string appId, Type type, string virtualPath, string physicalPath, bool failIfExists);
member this.CreateObject : string * Type * string * string * bool -> System.Web.Hosting.IRegisteredObject
Public Function CreateObject (appId As String, type As Type, virtualPath As String, physicalPath As String, failIfExists As Boolean) As IRegisteredObject

Parámetros

appId
String

El identificador único para la aplicación que posee el objeto.

type
Type

Tipo del objeto que se va a crear.

virtualPath
String

Ruta de acceso virtual a la aplicación.

physicalPath
String

Ruta de acceso física a la aplicación.

failIfExists
Boolean

true para producir una excepción si hay actualmente registrado un objeto del tipo especificado; false para devolver el objeto registrado existente del tipo especificado.

Devoluciones

Nuevo objeto del type especificado.

Excepciones

physicalPath es null

o bien

physicalPath no es una ruta de acceso a la aplicación válida

o bien

type no implementa la interfaz IRegisteredObject .

appID es null.

O bien

type es null.

failIfExists es true y ya hay registrado un objeto del tipo especificado.

Ejemplos

El ejemplo de código siguiente es una implementación del patrón de diseño del generador de objetos para los objetos registrados. El uso del patrón de fábrica permite registrar varias instancias de un objeto. El ejemplo contiene dos objetos: SampleComponent, que es el objeto del que la aplicación usará varias instancias de y SampleComponentFactory, que administra una lista de SampleComponent instancias.

using System.Web.Hosting;

public class SampleComponentFactory : IRegisteredObject
{
  private ArrayList components = new ArrayList();

  public void Start()
  {
    HostingEnvironment.RegisterObject(this);
  }

  void IRegisteredObject.Stop(bool immediate)
  {
    foreach (SampleComponent c in components)
    {
      ((IRegisteredObject)c).Stop(immediate);
    }
    HostingEnvironment.UnregisterObject(this);
  }

  public SampleComponent CreateComponent()
  {
    SampleComponent newComponent = new SampleComponent();
    newComponent.Initialize();
    components.Add(newComponent);
    return newComponent;
  }
}

public class SampleComponent : IRegisteredObject
{
  void IRegisteredObject.Stop(bool immediate)
  {
    // Clean up component resources here.
  }
  
  public void Initialize()
  {
    // Initialize component here.
  }
}
Imports System.Web.Hosting

Public Class SampleComponentFactory
  Implements IRegisteredObject

  Dim components As ArrayList = New ArrayList()

  Public Sub Start()
    HostingEnvironment.RegisterObject(Me)
  End Sub

  Public Sub [Stop](ByVal immediate As Boolean) Implements System.Web.Hosting.IRegisteredObject.Stop
    For Each c As SampleComponent In components
      CType(c, IRegisteredObject).Stop(immediate)
    Next
    HostingEnvironment.UnregisterObject(Me)
  End Sub

  Public Function CreateComponent() As SampleComponent
    Dim newComponent As SampleComponent
    newComponent = New SampleComponent
    newComponent.Initialize()

    components.Add(newComponent)
    Return newComponent
  End Function
End Class

Public Class SampleComponent
  Implements IRegisteredObject


  Sub [Stop](ByVal immediate As Boolean) Implements System.Web.Hosting.IRegisteredObject.Stop
    ' Clean up component resources here.
  End Sub

  Public Sub Initialize()
    ' Initialize component here.
  End Sub
End Class

Comentarios

El CreateObject método se usa para crear y registrar objetos en la aplicación. Solo se puede crear un objeto de cada tipo. Si necesita crear varios objetos del mismo tipo, debe implementar un generador de objetos. Para obtener más información, vea el ejemplo de código de este tema.

Cada aplicación, identificada por un identificador de aplicación único, se ejecuta en su propio dominio de aplicación. El CreateObject método crea un objeto del tipo especificado en el dominio de aplicación de la aplicación especificada en el appID parámetro . Si no existe un dominio de aplicación para la aplicación especificada, se crea uno antes de crear el objeto.

El failIfExists parámetro controla el comportamiento del CreateObject método cuando ya existe un objeto del tipo especificado en la aplicación. Cuando failIfExists es true, el CreateObject método produce una InvalidOperationException excepción.

Cuando failIfExists es false, el CreateObject método devuelve el objeto registrado existente del tipo especificado.

El CreateObject método llama a la sobrecarga que toma un parámetro adicional throwOnError con throwOnError establecido en false.

Se aplica a

CreateObject(String, Type, String, String, Boolean, Boolean)

Crea un objeto para el dominio de aplicación especificado, basado en el tipo, las rutas de acceso virtual y física, un valor booleano que indica el comportamiento de error si ya existe un objeto del tipo especificado, y un valor booleano que indica si se inician excepciones de error de inicialización del host.

public:
 System::Web::Hosting::IRegisteredObject ^ CreateObject(System::String ^ appId, Type ^ type, System::String ^ virtualPath, System::String ^ physicalPath, bool failIfExists, bool throwOnError);
public System.Web.Hosting.IRegisteredObject CreateObject (string appId, Type type, string virtualPath, string physicalPath, bool failIfExists, bool throwOnError);
member this.CreateObject : string * Type * string * string * bool * bool -> System.Web.Hosting.IRegisteredObject
Public Function CreateObject (appId As String, type As Type, virtualPath As String, physicalPath As String, failIfExists As Boolean, throwOnError As Boolean) As IRegisteredObject

Parámetros

appId
String

El identificador único para la aplicación que posee el objeto.

type
Type

Tipo del objeto que se va a crear.

virtualPath
String

Ruta de acceso virtual a la aplicación.

physicalPath
String

Ruta de acceso física a la aplicación.

failIfExists
Boolean

true para producir una excepción si hay actualmente registrado un objeto del tipo especificado; false para devolver el objeto registrado existente del tipo especificado.

throwOnError
Boolean

true para iniciar excepciones de error de inicialización del host; false para no iniciar excepciones de inicialización del host.

Devoluciones

Nuevo objeto del type especificado.

Excepciones

physicalPath es null

o bien

physicalPath no es una ruta de acceso a la aplicación válida

o bien

type no implementa la interfaz IRegisteredObject .

appID es null.

O bien

type es null.

failIfExists es true y ya hay registrado un objeto del tipo especificado.

Comentarios

Esta sobrecarga del método proporciona el CreateObjectthrowOnError parámetro , que permite controlar si se inician excepciones de inicialización de hospedaje. Sobrecarga del CreateObject método que no proporciona throwOnError llamadas a esta sobrecarga con el parámetro establecido en false.

Se aplica a