ApplicationManager.CreateObject Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Cria um objeto para o domínio de aplicação e tipo de objeto especificados.
Sobrecargas
| Name | Description |
|---|---|
| CreateObject(IApplicationHost, Type) |
Cria um objeto para o domínio de aplicação especificado, com base no tipo. |
| CreateObject(String, Type, String, String, Boolean) |
Cria um objeto para o domínio de aplicação especificado com base no tipo, caminhos virtuais e físicos, e um valor Booleano que indica comportamento de falha quando um objeto do tipo especificado já existe. |
| CreateObject(String, Type, String, String, Boolean, Boolean) |
Cria um objeto para o domínio de aplicação especificado com base no tipo, caminhos virtuais e físicos, um valor Booleano que indica comportamento de falha quando um objeto do tipo especificado já existe, e um valor Booleano que indica se há exceções de erro de inicialização de alojamento lançadas. |
CreateObject(IApplicationHost, Type)
Cria um objeto para o domínio de aplicação 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 IApplicationHost objeto.
- type
- Type
O tipo de objeto a criar.
Devoluções
Um novo objeto do tipo especificado em type.
Exceções
Não existe um caminho físico para a aplicação.
Observações
CreateObject é introduzido na versão 3.5 do .NET Framework. Para mais informações, consulte Versões e Dependências.
Aplica-se a
CreateObject(String, Type, String, String, Boolean)
Cria um objeto para o domínio de aplicação especificado com base no tipo, caminhos virtuais e físicos, e um valor Booleano que indica comportamento de falha quando um objeto do tipo especificado já existe.
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 único da aplicação que detém o objeto.
- type
- Type
O tipo de objeto a criar.
- virtualPath
- String
O caminho virtual para a aplicação.
- physicalPath
- String
O caminho físico até à aplicação.
- failIfExists
- Boolean
true lançar uma exceção se um objeto do tipo especificado estiver atualmente registado; false para devolver o objeto registado existente do tipo especificado.
Devoluções
Um novo objeto do especificado type.
Exceções
physicalPath é null
-ou-
physicalPath não é um caminho de aplicação válido.
-ou-
type não implementa a IRegisteredObject interface.
failIfExists é true e um objeto do tipo especificado já está registado.
Exemplos
O seguinte exemplo de código é uma implementação do padrão de design objeto-fábrica para objetos registados. Usar o padrão de fábrica permite-lhe registar múltiplas instâncias de um objeto. O exemplo contém dois objetos: SampleComponent, que é o objeto do qual a aplicação usará múltiplas instâncias, e SampleComponentFactory, que gere 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
Observações
O CreateObject método é usado para criar e registar objetos na aplicação. Apenas um objeto de cada tipo pode ser criado. Se precisares de criar múltiplos objetos do mesmo tipo, tens de implementar uma fábrica de objetos. Para mais informações, veja o exemplo de código neste tópico.
Cada aplicação, identificada por um identificador único, corre no seu próprio domínio de aplicação. O CreateObject método cria um objeto do tipo especificado no domínio de aplicação da aplicação especificado no appID parâmetro. Se não existir um domínio de aplicação para a aplicação especificada, um é criado antes de o objeto ser criado.
O failIfExists parâmetro controla o comportamento do CreateObject método quando um objeto do tipo especificado já existe na aplicação. Quando failIfExists é , o CreateObject método lança uma InvalidOperationException exceçãotrue.
Quando failIfExists é false, o CreateObject método devolve o objeto registado existente do tipo especificado.
O CreateObject método chama a sobrecarga que recebe um parâmetro adicional throwOnError com throwOnError definido em false.
Aplica-se a
CreateObject(String, Type, String, String, Boolean, Boolean)
Cria um objeto para o domínio de aplicação especificado com base no tipo, caminhos virtuais e físicos, um valor Booleano que indica comportamento de falha quando um objeto do tipo especificado já existe, e um valor Booleano que indica se há exceções de erro de inicialização de alojamento lançadas.
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 único da aplicação que detém o objeto.
- type
- Type
O tipo de objeto a criar.
- virtualPath
- String
O caminho virtual para a aplicação.
- physicalPath
- String
O caminho físico até à aplicação.
- failIfExists
- Boolean
true lançar uma exceção se um objeto do tipo especificado estiver atualmente registado; false para devolver o objeto registado existente do tipo especificado.
- throwOnError
- Boolean
true lançar exceções por erros de inicialização de alojamento; false para não lançar exceções de inicialização de alojamento.
Devoluções
Um novo objeto do especificado type.
Exceções
physicalPath é null
-ou-
physicalPath não é um caminho de aplicação válido.
-ou-
type não implementa a IRegisteredObject interface.
failIfExists é true e um objeto do tipo especificado já está registado.
Observações
Esta sobrecarga do CreateObject método fornece o throwOnError parâmetro que permite controlar se as exceções de inicialização do alojamento são lançadas. A sobrecarga do CreateObject método que não fornece throwOnError chama a esta sobrecarga com o parâmetro definido em false.