ApplicationManager.CreateObject Methode

Definition

Erstellt ein Objekt für die angegebene Anwendungsdomäne und den angegebenen Objekttyp.

Überlädt

Name Beschreibung
CreateObject(IApplicationHost, Type)

Erstellt ein Objekt für die angegebene Anwendungsdomäne basierend auf dem Typ.

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

Erstellt ein Objekt für die angegebene Anwendungsdomäne basierend auf Typ, virtuellen und physischen Pfaden und einem booleschen Wert, der das Fehlerverhalten angibt, wenn bereits ein Objekt des angegebenen Typs vorhanden ist.

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

Erstellt ein Objekt für die angegebene Anwendungsdomäne basierend auf Typ, virtuellen und physischen Pfaden, einem booleschen Wert, der das Fehlerverhalten angibt, wenn ein Objekt des angegebenen Typs bereits vorhanden ist, und ein boolescher Wert, der angibt, ob Hostinitialisierungsfehler-Ausnahmen ausgelöst werden.

CreateObject(IApplicationHost, Type)

Erstellt ein Objekt für die angegebene Anwendungsdomäne basierend auf dem Typ.

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

Parameter

appHost
IApplicationHost

Ein IApplicationHost-Objekt.

type
Type

Der Typ des zu erstellenden Objekts.

Gibt zurück

Ein neues Objekt des typs, der in type.

Ausnahmen

Ein physischer Pfad für die Anwendung ist nicht vorhanden.

appHost ist null.

-oder-

type ist null.

Hinweise

CreateObject wird in der .NET Framework Version 3.5 eingeführt. Weitere Informationen finden Sie unter "Versionen und Abhängigkeiten".

Gilt für:

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

Erstellt ein Objekt für die angegebene Anwendungsdomäne basierend auf Typ, virtuellen und physischen Pfaden und einem booleschen Wert, der das Fehlerverhalten angibt, wenn bereits ein Objekt des angegebenen Typs vorhanden ist.

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

Parameter

appId
String

Der eindeutige Bezeichner für die Anwendung, die das Objekt besitzt.

type
Type

Der Typ des zu erstellenden Objekts.

virtualPath
String

Der virtuelle Pfad zur Anwendung.

physicalPath
String

Der physische Pfad zur Anwendung.

failIfExists
Boolean

true eine Ausnahme auszuwerfen, wenn derzeit ein Objekt des angegebenen Typs registriert ist; false um das vorhandene registrierte Objekt des angegebenen Typs zurückzugeben.

Gibt zurück

Ein neues Objekt des angegebenen type.

Ausnahmen

physicalPath ist null

-oder-

physicalPath ist kein gültiger Anwendungspfad.

-oder-

type implementiert die IRegisteredObject Schnittstelle nicht.

appID ist null.

-oder-

type ist null.

failIfExists ist true und ein Objekt des angegebenen Typs bereits registriert ist.

Beispiele

Das folgende Codebeispiel ist eine Implementierung des Objekt-Factory-Entwurfsmusters für registrierte Objekte. Mithilfe des Factorymusters können Sie mehrere Instanzen eines Objekts registrieren. Das Beispiel enthält zwei Objekte: SampleComponentdies ist das Objekt, von dem die Anwendung mehrere Instanzen verwendet, und SampleComponentFactory, die eine Liste von SampleComponent Instanzen verwaltet.

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

Hinweise

Die CreateObject Methode wird verwendet, um Objekte in der Anwendung zu erstellen und zu registrieren. Es kann nur ein Objekt jedes Typs erstellt werden. Wenn Sie mehrere Objekte desselben Typs erstellen müssen, müssen Sie eine Objektfactory implementieren. Weitere Informationen finden Sie im Codebeispiel in diesem Thema.

Jede Anwendung, die durch einen eindeutigen Anwendungsbezeichner identifiziert wird, wird in einer eigenen Anwendungsdomäne ausgeführt. Die CreateObject Methode erstellt ein Objekt des angegebenen Typs in der Anwendungsdomäne der anwendung, die appID im Parameter angegeben ist. Wenn für die angegebene Anwendung keine Anwendungsdomäne vorhanden ist, wird eine erstellt, bevor das Objekt erstellt wird.

Der failIfExists Parameter steuert das Verhalten der CreateObject Methode, wenn ein Objekt des angegebenen Typs bereits in der Anwendung vorhanden ist. Wenn failIfExists dies der Zeitpunkt ist true, löst die CreateObject Methode eine Ausnahme aus InvalidOperationException .

Wenn failIfExists dies der Wert ist, gibt falsedie CreateObject Methode das vorhandene registrierte Objekt des angegebenen Typs zurück.

Die CreateObject Methode ruft die Überladung auf, die einen zusätzlichen throwOnError Parameter verwendet, auf throwOnError den falsefestgelegt ist.

Gilt für:

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

Erstellt ein Objekt für die angegebene Anwendungsdomäne basierend auf Typ, virtuellen und physischen Pfaden, einem booleschen Wert, der das Fehlerverhalten angibt, wenn ein Objekt des angegebenen Typs bereits vorhanden ist, und ein boolescher Wert, der angibt, ob Hostinitialisierungsfehler-Ausnahmen ausgelöst werden.

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

Parameter

appId
String

Der eindeutige Bezeichner für die Anwendung, die das Objekt besitzt.

type
Type

Der Typ des zu erstellenden Objekts.

virtualPath
String

Der virtuelle Pfad zur Anwendung.

physicalPath
String

Der physische Pfad zur Anwendung.

failIfExists
Boolean

true eine Ausnahme auszuwerfen, wenn derzeit ein Objekt des angegebenen Typs registriert ist; false um das vorhandene registrierte Objekt des angegebenen Typs zurückzugeben.

throwOnError
Boolean

true Ausnahmen für Das Hosten von Initialisierungsfehlern auszuwerfen; false keine Hostinitialisierungs exceptions auszuwerfen.

Gibt zurück

Ein neues Objekt des angegebenen type.

Ausnahmen

physicalPath ist null

-oder-

physicalPath ist kein gültiger Anwendungspfad.

-oder-

type implementiert die IRegisteredObject Schnittstelle nicht.

appID ist null.

-oder-

type ist null.

failIfExists ist true und ein Objekt des angegebenen Typs bereits registriert ist.

Hinweise

Diese Überladung der CreateObject Methode stellt den throwOnError Parameter bereit, mit dem Sie steuern können, ob Hostinitialisierungs exceptions ausgelöst werden. Die Überladung der Methode, die CreateObject diese Überladung nicht bereitstellt throwOnError , wobei der Parameter auf false".

Gilt für: