ApplicationManager.CreateObject Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.
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.
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.
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".