ApplicationManager.CreateObject Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria um objeto para o tipo de objeto e o domínio do aplicativo especificados.
Sobrecargas
CreateObject(IApplicationHost, Type) |
Cria um objeto para o domínio de aplicativo especificado com base no tipo. |
CreateObject(String, Type, String, String, Boolean) |
Cria um objeto para o domínio do aplicativo especificado com base no tipo, caminhos físicos e virtuais e um valor booliano que indica o comportamento de falha quando um objeto do tipo especificado já existir. |
CreateObject(String, Type, String, String, Boolean, Boolean) |
Cria um objeto para o domínio de aplicativo especificado com base no tipo, em caminhos virtuais e físicos, em um valor booliano que indica o comportamento de falha quando já existe um objeto do tipo especificado e em um valor booliano que indica se as exceções de erro de inicialização de hospedagem são geradas. |
CreateObject(IApplicationHost, Type)
Cria um objeto para o domínio de aplicativo especificado com base no 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
Um objeto IApplicationHost.
- type
- Type
O tipo do objeto a ser criado.
Retornos
Um novo objeto do tipo especificado em type
.
Exceções
Um caminho físico para o aplicativo não existe.
Comentários
CreateObjecté introduzido no .NET Framework versão 3.5. Para saber mais, confira Versões e dependências.
Aplica-se a
CreateObject(String, Type, String, String, Boolean)
Cria um objeto para o domínio do aplicativo especificado com base no tipo, caminhos físicos e virtuais e um valor booliano que indica o comportamento de falha quando um objeto do tipo especificado já existir.
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
O identificador exclusivo para o aplicativo que possui o objeto.
- type
- Type
O tipo do objeto a ser criado.
- virtualPath
- String
O caminho virtual para o aplicativo.
- physicalPath
- String
O caminho físico para o aplicativo.
- failIfExists
- Boolean
true
para gerar uma exceção se um objeto do tipo especificado estiver registrado atualmente, false
para retornar o objeto registrado existente do tipo especificado.
Retornos
Um novo objeto do type
especificado.
Exceções
physicalPath
é null
- ou -
physicalPath
não é um caminho de aplicativo válido.
- ou -
type
não implementa a interface IRegisteredObject .
failIfExists
é true
e um objeto do tipo especificado já está registrado.
Exemplos
O exemplo de código a seguir é uma implementação do padrão de design de fábrica de objetos para objetos registrados. O uso do padrão de fábrica permite registrar várias instâncias de um objeto. O exemplo contém dois objetos: SampleComponent
, que é o objeto do qual o aplicativo usará várias instâncias e SampleComponentFactory
, que gerencia uma lista de SampleComponent
instâncias.
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
Comentários
O CreateObject método é usado para criar e registrar objetos no aplicativo. Somente um objeto de cada tipo pode ser criado. Se você precisar criar vários objetos do mesmo tipo, deverá implementar uma fábrica de objetos. Para obter mais informações, consulte o exemplo de código neste tópico.
Cada aplicativo, identificado por um identificador de aplicativo exclusivo, é executado em seu próprio domínio de aplicativo. O CreateObject método cria um objeto do tipo especificado no domínio do aplicativo do aplicativo especificado no appID
parâmetro. Se um domínio de aplicativo não existir para o aplicativo especificado, um será criado antes de o objeto ser criado.
O failIfExists
parâmetro controla o comportamento do CreateObject método quando já existe um objeto do tipo especificado no aplicativo. Quando failIfExists
é true
, o CreateObject método gera uma exceção InvalidOperationException .
Quando failIfExists
é false
, o CreateObject método retorna o objeto registrado existente do tipo especificado.
O CreateObject método chama a sobrecarga que usa um parâmetro adicional throwOnError
com throwOnError
definido como false
.
Aplica-se a
CreateObject(String, Type, String, String, Boolean, Boolean)
Cria um objeto para o domínio de aplicativo especificado com base no tipo, em caminhos virtuais e físicos, em um valor booliano que indica o comportamento de falha quando já existe um objeto do tipo especificado e em um valor booliano que indica se as exceções de erro de inicialização de hospedagem são geradas.
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
O identificador exclusivo para o aplicativo que possui o objeto.
- type
- Type
O tipo do objeto a ser criado.
- virtualPath
- String
O caminho virtual para o aplicativo.
- physicalPath
- String
O caminho físico para o aplicativo.
- failIfExists
- Boolean
true
para gerar uma exceção se um objeto do tipo especificado estiver registrado atualmente, false
para retornar o objeto registrado existente do tipo especificado.
- throwOnError
- Boolean
true
para gerar exceções para erros de inicialização de hospedagem; false
para não gerar exceções de inicialização de hospedagem.
Retornos
Um novo objeto do type
especificado.
Exceções
physicalPath
é null
- ou -
physicalPath
não é um caminho de aplicativo válido.
- ou -
type
não implementa a interface IRegisteredObject .
failIfExists
é true
e um objeto do tipo especificado já está registrado.
Comentários
Essa sobrecarga do CreateObject método fornece o throwOnError
parâmetro, que permite controlar se as exceções de inicialização de hospedagem são geradas. A sobrecarga do CreateObject método que não fornece throwOnError
chamadas essa sobrecarga com o parâmetro definido como false
.