Sdílet prostřednictvím


ApplicationManager.CreateObject Metoda

Definice

Vytvoří objekt pro zadanou doménu aplikace a typ objektu.

Přetížení

CreateObject(IApplicationHost, Type)

Vytvoří objekt pro zadanou doménu aplikace na základě typu.

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

Vytvoří objekt pro zadanou doménu aplikace na základě typu, virtuálních a fyzických cest a logické hodnoty označující chování selhání, pokud objekt zadaného typu již existuje.

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

Vytvoří objekt pro zadanou doménu aplikace na základě typu, virtuálních a fyzických cest, logické hodnoty označující chování selhání, pokud objekt zadaného typu již existuje, a logická hodnota označující, jestli se vyvolá výjimky chyby inicializace hostování.

CreateObject(IApplicationHost, Type)

Vytvoří objekt pro zadanou doménu aplikace na základě typu.

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

Parametry

type
Type

Typ objektu k vytvoření.

Návraty

IRegisteredObject

Nový objekt typu zadaného v type.

Výjimky

Fyzická cesta pro aplikaci neexistuje.

appHost je null.

-nebo- type je null.

Poznámky

CreateObjectje zaveden v .NET Framework verze 3.5. Další informace najdete v tématu Verze a závislosti.

Platí pro

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

Vytvoří objekt pro zadanou doménu aplikace na základě typu, virtuálních a fyzických cest a logické hodnoty označující chování selhání, pokud objekt zadaného typu již existuje.

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

Parametry

appId
String

Jedinečný identifikátor aplikace, která objekt vlastní.

type
Type

Typ objektu k vytvoření.

virtualPath
String

Virtuální cesta k aplikaci.

physicalPath
String

Fyzická cesta k aplikaci.

failIfExists
Boolean

true vyvolání výjimky, pokud je objekt zadaného typu aktuálně registrován; false chcete-li vrátit existující registrovaný objekt zadaného typu.

Návraty

IRegisteredObject

Nový objekt zadaného typeobjektu .

Výjimky

physicalPath je null

-nebo- physicalPath není platná cesta aplikace.

-nebo- type neimplementuje IRegisteredObject rozhraní.

appID je null.

-nebo- type je null.

failIfExists je true a objekt zadaného typu je již zaregistrován.

Příklady

Následující příklad kódu je implementace vzoru návrhu objekt-továrna pro registrované objekty. Pomocí vzoru továrny můžete zaregistrovat více instancí objektu. Příklad obsahuje dva objekty: SampleComponentcož je objekt, který aplikace bude používat více instancí a SampleComponentFactorykterá spravuje seznam SampleComponent instancí.

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

Poznámky

Metoda CreateObject slouží k vytvoření a registraci objektů v aplikaci. Lze vytvořit pouze jeden objekt každého typu. Pokud potřebujete vytvořit více objektů stejného typu, musíte implementovat objekt pro vytváření objektů. Další informace najdete v příkladu kódu v tomto tématu.

Každá aplikace identifikovaná jedinečným identifikátorem aplikace běží ve vlastní doméně aplikace. Metoda CreateObject vytvoří objekt zadaného typu v doméně aplikace aplikace zadané v parametru appID . Pokud doména aplikace pro zadanou aplikaci neexistuje, vytvoří se před vytvořením objektu.

Parametr failIfExists řídí chování metody, pokud objekt zadaného CreateObject typu již v aplikaci existuje. Když failIfExists je true, CreateObject metoda vyvolá InvalidOperationException výjimku.

Když failIfExists je false, CreateObject metoda vrátí existující registrovaný objekt zadaného typu.

Metoda CreateObject volá přetížení, které přebírá další throwOnError parametr s throwOnError nastavenou na false.

Platí pro

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

Vytvoří objekt pro zadanou doménu aplikace na základě typu, virtuálních a fyzických cest, logické hodnoty označující chování selhání, pokud objekt zadaného typu již existuje, a logická hodnota označující, jestli se vyvolá výjimky chyby inicializace hostování.

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

Parametry

appId
String

Jedinečný identifikátor aplikace, která objekt vlastní.

type
Type

Typ objektu k vytvoření.

virtualPath
String

Virtuální cesta k aplikaci.

physicalPath
String

Fyzická cesta k aplikaci.

failIfExists
Boolean

true vyvolání výjimky, pokud je objekt zadaného typu aktuálně registrován; false chcete-li vrátit existující registrovaný objekt zadaného typu.

throwOnError
Boolean

true vyvolání výjimek pro chyby inicializace hostování; false nevyvolá výjimky inicializace hostování.

Návraty

IRegisteredObject

Nový objekt zadaného typeobjektu .

Výjimky

physicalPath je null

-nebo- physicalPath není platná cesta aplikace.

-nebo- type neimplementuje IRegisteredObject rozhraní.

appID je null.

-nebo- type je null.

failIfExists je true a objekt zadaného typu je již zaregistrován.

Poznámky

Toto přetížení CreateObject metody poskytuje throwOnError parametr, který umožňuje řídit, zda jsou vyvoláné výjimky inicializace hostování. Přetížení CreateObject metody, která neposkytuje throwOnError volání tohoto přetížení s parametrem nastaveným na false.

Platí pro