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
CreateObject(IApplicationHost, Type) |
Erstellt ein Objekt für die angegebene Anwendungsdomäne, basierend auf dem Typ. |
CreateObject(String, Type, String, String, Boolean) |
Erstellt anhand des Typs oder virtuellen bzw. physischen Pfads ein Objekt für die angegebene Anwendungsdomäne und einen booleschen Wert, der das Verhalten bei Fehlern angibt, wenn bereits ein Objekt vom angegebenen Typ vorhanden ist. |
CreateObject(String, Type, String, String, Boolean, Boolean) |
Erstellt anhand des Typs oder virtuellen bzw. physischen Pfads ein Objekt für die angegebene Anwendungsdomäne, einen booleschen Wert, der das Verhalten bei Fehlern angibt, wenn bereits ein Objekt vom angegebenen Typ vorhanden ist, sowie einen booleschen Wert, der angibt, ob bei Hostinitialisierungsfehlern 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 in type
angegebenen Typs.
Ausnahmen
Für die Anwendung ist kein physischer Pfad vorhanden.
Hinweise
CreateObjectwird 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 anhand des Typs oder virtuellen bzw. physischen Pfads ein Objekt für die angegebene Anwendungsdomäne und einen booleschen Wert, der das Verhalten bei Fehlern angibt, wenn bereits ein Objekt vom angegebenen Typ 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
, um eine Ausnahme auszulösen, wenn ein Objekt vom angegebenen Typ derzeit registriert ist, false
, um das vorhandene registrierte Objekt vom angegebenen Typ zurückzugeben.
Gibt zurück
Ein neues Objekt vom angegebenen type
.
Ausnahmen
physicalPath
ist gleich null
.
- oder -
physicalPath
ist kein gültiger Anwendungspfad.
- oder -
Die IRegisteredObject-Schnittstelle wird von type
nicht implementiert.
failIfExists
ist true
, und ein Objekt vom angegebenen Typ ist bereits registriert.
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: SampleComponent
, das das Objekt ist, das die Anwendung mehrere Instanzen von verwendet, und SampleComponentFactory
, das 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 ihrer 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 domäne 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
ist true
, löst die CreateObject -Methode eine Ausnahme aus InvalidOperationException .
Wenn failIfExists
ist false
, gibt die CreateObject -Methode das vorhandene registrierte Objekt des angegebenen Typs zurück.
Die CreateObject -Methode ruft die Überladung auf, die einen zusätzlichen throwOnError
Parameter mit throwOnError
festgelegt auf false
akzeptiert.
Gilt für:
CreateObject(String, Type, String, String, Boolean, Boolean)
Erstellt anhand des Typs oder virtuellen bzw. physischen Pfads ein Objekt für die angegebene Anwendungsdomäne, einen booleschen Wert, der das Verhalten bei Fehlern angibt, wenn bereits ein Objekt vom angegebenen Typ vorhanden ist, sowie einen booleschen Wert, der angibt, ob bei Hostinitialisierungsfehlern 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
, um eine Ausnahme auszulösen, wenn ein Objekt vom angegebenen Typ derzeit registriert ist, false
, um das vorhandene registrierte Objekt vom angegebenen Typ zurückzugeben.
- throwOnError
- Boolean
true
, um bei Hostinitialisierungsfehlern Ausnahmen auszulösen, false
, um keine Ausnahmen bei Hostinitialisierungsfehlern auszulösen.
Gibt zurück
Ein neues Objekt vom angegebenen type
.
Ausnahmen
physicalPath
ist gleich null
.
- oder -
physicalPath
ist kein gültiger Anwendungspfad.
- oder -
Die IRegisteredObject-Schnittstelle wird von type
nicht implementiert.
failIfExists
ist true
, und ein Objekt vom angegebenen Typ ist bereits registriert.
Hinweise
Diese Überladung der CreateObject Methode stellt den throwOnError
Parameter bereit, mit dem Sie steuern können, ob Hostinitialisierungsausnahmen ausgelöst werden. Die Überladung der -Methode, die CreateObject nicht bereitstellt throwOnError
, ruft diese Überladung auf, wobei der Parameter auf false
festgelegt ist.