ApplicationManager.CreateObject ApplicationManager.CreateObject ApplicationManager.CreateObject Method

Definition

Erstellt ein Objekt für die angegebene Anwendungsdomäne und den angegebenen Objekttyp.Creates an object for the specified application domain and object type.

Überlädt

CreateObject(IApplicationHost, Type) CreateObject(IApplicationHost, Type) CreateObject(IApplicationHost, Type)

Erstellt ein Objekt für die angegebene Anwendungsdomäne, basierend auf dem Typ.Creates an object for the specified application domain, based on type.

CreateObject(String, Type, String, String, Boolean) CreateObject(String, Type, String, String, Boolean) 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.Creates an object for the specified application domain based on type, virtual and physical paths, and a Boolean value indicating failure behavior when an object of the specified type already exists.

CreateObject(String, Type, String, String, Boolean, Boolean) CreateObject(String, Type, String, String, Boolean, Boolean) 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.Creates an object for the specified application domain based on type, virtual and physical paths, a Boolean value indicating failure behavior when an object of the specified type already exists, and a Boolean value indicating whether hosting initialization error exceptions are thrown.

CreateObject(IApplicationHost, Type) CreateObject(IApplicationHost, Type) CreateObject(IApplicationHost, Type)

Erstellt ein Objekt für die angegebene Anwendungsdomäne, basierend auf dem Typ.Creates an object for the specified application domain, based on type.

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

Parameter

type
Type Type Type

Der Typ des zu erstellenden Objekts.The type of the object to create.

Gibt zurück

Ein neues Objekt des in type angegebenen Typs.A new object of the type specified in type.

Ausnahmen

Für die Anwendung ist kein physischer Pfad vorhanden.A physical path for the application does not exist.

appHost ist null.appHost is null.

- oder --or- type ist null.type is null.

Hinweise

CreateObjectwird in der .NET Framework Version 3,5 eingeführt.CreateObject is introduced in the .NET Framework version 3.5. Weitere Informationen finden Sie unter Versionen und Abhängigkeiten.For more information, see Versions and Dependencies.

CreateObject(String, Type, String, String, Boolean) CreateObject(String, Type, String, String, Boolean) 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.Creates an object for the specified application domain based on type, virtual and physical paths, and a Boolean value indicating failure behavior when an object of the specified type already exists.

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

Parameter

appId
String String String

Der eindeutige Bezeichner für die Anwendung, die das Objekt besitzt.The unique identifier for the application that owns the object.

type
Type Type Type

Der Typ des zu erstellenden Objekts.The type of the object to create.

virtualPath
String String String

Der virtuelle Pfad zur Anwendung.The virtual path to the application.

physicalPath
String String String

Der physische Pfad zur Anwendung.The physical path to the application.

failIfExists
Boolean Boolean 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.true to throw an exception if an object of the specified type is currently registered; false to return the existing registered object of the specified type.

Gibt zurück

Ein neues Objekt vom angegebenen type.A new object of the specified type.

Ausnahmen

physicalPath ist gleich null.physicalPath is null

- oder --or- physicalPath ist kein gültiger Anwendungspfad.physicalPath is not a valid application path.

- oder --or- Die IRegisteredObject-Schnittstelle wird von type nicht implementiert.type does not implement the IRegisteredObject interface.

appID ist null.appID is null.

- oder --or- type ist null.type is null.

failIfExists ist true, und ein Objekt vom angegebenen Typ ist bereits registriert.failIfExists is true and an object of the specified type is already registered.

Beispiele

Das folgende Codebeispiel ist eine Implementierung des objektfactoryentwurfsmusters für registrierte Objekte.The following code example is an implementation of the object-factory design pattern for registered objects. Mit dem Factorymuster können Sie mehrere Instanzen eines Objekts registrieren.Using the factory pattern enables you to register multiple instances of an object. Das Beispiel enthält zwei-Objekte SampleComponent:, d. h. das-Objekt, das von der Anwendung SampleComponentFactoryverwendet wird, und, das SampleComponent eine Liste von-Instanzen verwaltet.The example contains two objects: SampleComponent, which is the object the application will use multiple instances of, and SampleComponentFactory, which manages a list of SampleComponent instances.

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.The CreateObject method is used to create and register objects in the application. Es kann nur ein Objekt jedes Typs erstellt werden.Only one object of each type can be created. Wenn Sie mehrere Objekte desselben Typs erstellen müssen, müssen Sie eine Objektfactory implementieren.If you need to create multiple objects of the same type, you must implement an object factory. Weitere Informationen finden Sie im Codebeispiel in diesem Thema.For more information, see the code example in this topic.

Jede Anwendung, die durch einen eindeutigen Anwendungs Bezeichner identifiziert wird, wird in einer eigenen Anwendungsdomäne ausgeführt.Each application, identified by a unique application identifier, runs in its own application domain. Die CreateObject -Methode erstellt ein Objekt des angegebenen Typs in der Anwendungsdomäne der Anwendung, die appID im-Parameter angegeben ist.The CreateObject method creates an object of the specified type in the application domain of the application specified in the appID parameter. Wenn eine Anwendungsdomäne für die angegebene Anwendung nicht vorhanden ist, wird eine erstellt, bevor das Objekt erstellt wird.If an application domain does not exist for the specified application, one is created before the object is created.

Der failIfExists -Parameter steuert das Verhalten CreateObject der-Methode, wenn ein Objekt des angegebenen Typs bereits in der Anwendung vorhanden ist.The failIfExists parameter controls the behavior of the CreateObject method when an object of the specified type already exists in the application. failIfExists CreateObject Wenn den Wert InvalidOperationException hat, löst die Methode eine Ausnahme aus. trueWhen failIfExists is true, the CreateObject method throws an InvalidOperationException exception.

Wenn failIfExists CreateObject ist false, gibt die Methode das vorhandene registrierte Objekt des angegebenen Typs zurück.When failIfExists is false, the CreateObject method returns the existing registered object of the specified type.

Die CreateObject -Methode ruft die-Überladung auf throwOnError false, die throwOnError einen zusätzlichen Parameter annimmt.The CreateObject method calls the overload that takes an additional throwOnError parameter with throwOnError set to false.

CreateObject(String, Type, String, String, Boolean, Boolean) CreateObject(String, Type, String, String, Boolean, Boolean) 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.Creates an object for the specified application domain based on type, virtual and physical paths, a Boolean value indicating failure behavior when an object of the specified type already exists, and a Boolean value indicating whether hosting initialization error exceptions are thrown.

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

Parameter

appId
String String String

Der eindeutige Bezeichner für die Anwendung, die das Objekt besitzt.The unique identifier for the application that owns the object.

type
Type Type Type

Der Typ des zu erstellenden Objekts.The type of the object to create.

virtualPath
String String String

Der virtuelle Pfad zur Anwendung.The virtual path to the application.

physicalPath
String String String

Der physische Pfad zur Anwendung.The physical path to the application.

failIfExists
Boolean Boolean 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.true to throw an exception if an object of the specified type is currently registered; false to return the existing registered object of the specified type.

throwOnError
Boolean Boolean Boolean

true, um bei Hostinitialisierungsfehlern Ausnahmen auszulösen, false, um keine Ausnahmen bei Hostinitialisierungsfehlern auszulösen.true to throw exceptions for hosting initialization errors; false to not throw hosting initialization exceptions.

Gibt zurück

Ein neues Objekt vom angegebenen type.A new object of the specified type.

Ausnahmen

physicalPath ist gleich null.physicalPath is null

- oder --or- physicalPath ist kein gültiger Anwendungspfad.physicalPath is not a valid application path.

- oder --or- Die IRegisteredObject-Schnittstelle wird von type nicht implementiert.type does not implement the IRegisteredObject interface.

appID ist null.appID is null.

- oder --or- type ist null.type is null.

failIfExists ist true, und ein Objekt vom angegebenen Typ ist bereits registriert.failIfExists is true and an object of the specified type is already registered.

Hinweise

Diese über CreateObject Ladung der-Methode stellt throwOnError den-Parameter bereit, mit dem Sie steuern können, ob hostinitialisierungs Ausnahmen ausgelöst werden.This overload of the CreateObject method provides the throwOnError parameter, which allows you to control whether hosting initialization exceptions are thrown. Die-über CreateObject Ladung der-Methode, die throwOnError nicht bereitstellt, ruft diese Überladung falsemit dem-Parameter auf.The overload of the CreateObject method that does not provide throwOnError calls this overload with the parameter set to false.

Gilt für: