ApplicationManager.CreateObject Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
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 .
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 .
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
.