ApplicationManager.CreateObject Metoda

Definice

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

Přetížení

Name Description
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í a fyzické cesty, logickou hodnotu označující chování selhání, pokud objekt zadaného typu již existuje, a logickou hodnotu označující, zda jsou vyvolány 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, který chcete vytvořit.

Návraty

Nový objekt typu zadaného v type.

Výjimky

Fyzická cesta pro aplikaci neexistuje.

appHost je null.

nebo

type je null.

Poznámky

CreateObject je zaveden v rozhraní .NET Framework verze 3.5. Další informace naleznete 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, který chcete vytvořit.

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 pro vrácení existujícího registrovaného objektu zadaného typu.

Návraty

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ž registrován.

Příklady

Následující příklad kódu je implementace vzoru návrhu objekt-továrna pro registrované objekty. Použití vzoru továrny umožňuje registrovat více instancí objektu. Příklad obsahuje dva objekty: SampleComponent, což 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 se používá 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í CreateObject metody, pokud objekt zadaného typu již v aplikaci existuje. Když failIfExists je true, CreateObject metoda vyvolá InvalidOperationException výjimku.

Pokud 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 nastaveným na false.

Platí pro

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

Vytvoří objekt pro zadanou doménu aplikace na základě typu, virtuální a fyzické cesty, logickou hodnotu označující chování selhání, pokud objekt zadaného typu již existuje, a logickou hodnotu označující, zda jsou vyvolány 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, který chcete vytvořit.

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 pro vrácení existujícího registrovaného objektu zadaného typu.

throwOnError
Boolean

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

Návraty

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ž registrován.

Poznámky

Toto přetížení CreateObject metody poskytuje throwOnError parametr, který umožňuje řídit, zda jsou vyvolány 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