Compartilhar via


ApplicationManager.CreateObject Método

Definição

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

IRegisteredObject

Um novo objeto do tipo especificado em type.

Exceções

Um caminho físico para o aplicativo não existe.

appHost é null.

- ou - type é null.

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

IRegisteredObject

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 .

appID é null.

- ou - type é null.

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

IRegisteredObject

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 .

appID é null.

- ou - type é null.

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.

Aplica-se a