ApplicationManager.CreateObject Methode

Definitie

Hiermee maakt u een object voor het opgegeven toepassingsdomein en objecttype.

Overloads

Name Description
CreateObject(IApplicationHost, Type)

Hiermee maakt u een object voor het opgegeven toepassingsdomein op basis van het type.

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

Hiermee maakt u een object voor het opgegeven toepassingsdomein op basis van type, virtuele en fysieke paden en een Booleaanse waarde die het foutgedrag aangeeft wanneer er al een object van het opgegeven type bestaat.

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

Hiermee maakt u een object voor het opgegeven toepassingsdomein op basis van type, virtuele en fysieke paden, een Booleaanse waarde die het foutgedrag aangeeft wanneer er al een object van het opgegeven type bestaat en een Booleaanse waarde die aangeeft of er uitzonderingen voor initialisatiefouten worden gegenereerd.

CreateObject(IApplicationHost, Type)

Hiermee maakt u een object voor het opgegeven toepassingsdomein op basis van het 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
Public Function CreateObject (appHost As IApplicationHost, type As Type) As IRegisteredObject

Parameters

appHost
IApplicationHost

Een IApplicationHost object.

type
Type

Het type object dat moet worden gemaakt.

Retouren

Een nieuw object van het type dat is opgegeven in type.

Uitzonderingen

Er bestaat geen fysiek pad voor de toepassing.

appHost is null.

– of –

type is null.

Opmerkingen

CreateObject wordt geïntroduceerd in de .NET Framework versie 3.5. Zie Versies en afhankelijkheden voor meer informatie.

Van toepassing op

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

Hiermee maakt u een object voor het opgegeven toepassingsdomein op basis van type, virtuele en fysieke paden en een Booleaanse waarde die het foutgedrag aangeeft wanneer er al een object van het opgegeven type bestaat.

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

Parameters

appId
String

De unieke id voor de toepassing die eigenaar is van het object.

type
Type

Het type object dat moet worden gemaakt.

virtualPath
String

Het virtuele pad naar de toepassing.

physicalPath
String

Het fysieke pad naar de toepassing.

failIfExists
Boolean

true om een uitzondering te genereren als een object van het opgegeven type momenteel is geregistreerd; false om het bestaande geregistreerde object van het opgegeven type te retourneren.

Retouren

Een nieuw object van de opgegeven type.

Uitzonderingen

physicalPath Is null

– of –

physicalPath is geen geldig toepassingspad.

– of –

type implementeert de IRegisteredObject interface niet.

appID is null.

– of –

type is null.

failIfExists is true en een object van het opgegeven type is al geregistreerd.

Voorbeelden

Het volgende codevoorbeeld is een implementatie van het ontwerppatroon object-factory voor geregistreerde objecten. Met behulp van het factory-patroon kunt u meerdere exemplaren van een object registreren. Het voorbeeld bevat twee objecten: SampleComponent, dit is het object waarvan de toepassing meerdere exemplaren gebruikt en SampleComponentFactory, waarmee een lijst SampleComponent met exemplaren wordt beheerd.

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

Opmerkingen

De CreateObject methode wordt gebruikt om objecten in de toepassing te maken en te registreren. Er kan slechts één object van elk type worden gemaakt. Als u meerdere objecten van hetzelfde type wilt maken, moet u een objectfactory implementeren. Zie het codevoorbeeld in dit onderwerp voor meer informatie.

Elke toepassing, geïdentificeerd door een unieke toepassings-id, wordt uitgevoerd in een eigen toepassingsdomein. De CreateObject methode maakt een object van het opgegeven type in het toepassingsdomein van de toepassing die is opgegeven in de appID parameter. Als er geen toepassingsdomein bestaat voor de opgegeven toepassing, wordt er een gemaakt voordat het object wordt gemaakt.

De failIfExists parameter bepaalt het gedrag van de CreateObject methode wanneer er al een object van het opgegeven type in de toepassing bestaat. Wanneer failIfExists is true, genereert de CreateObject methode een InvalidOperationException uitzondering.

Wanneer failIfExists is false, retourneert de CreateObject methode het bestaande geregistreerde object van het opgegeven type.

Met CreateObject de methode wordt de overbelasting aangeroepen waarvoor een extra throwOnError parameter is throwOnError ingesteld op false.

Van toepassing op

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

Hiermee maakt u een object voor het opgegeven toepassingsdomein op basis van type, virtuele en fysieke paden, een Booleaanse waarde die het foutgedrag aangeeft wanneer er al een object van het opgegeven type bestaat en een Booleaanse waarde die aangeeft of er uitzonderingen voor initialisatiefouten worden gegenereerd.

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

Parameters

appId
String

De unieke id voor de toepassing die eigenaar is van het object.

type
Type

Het type object dat moet worden gemaakt.

virtualPath
String

Het virtuele pad naar de toepassing.

physicalPath
String

Het fysieke pad naar de toepassing.

failIfExists
Boolean

true om een uitzondering te genereren als een object van het opgegeven type momenteel is geregistreerd; false om het bestaande geregistreerde object van het opgegeven type te retourneren.

throwOnError
Boolean

true uitzonderingen voor het hosten van initialisatiefouten; false om hosting-initialisatie-uitzonderingen niet te genereren.

Retouren

Een nieuw object van de opgegeven type.

Uitzonderingen

physicalPath Is null

– of –

physicalPath is geen geldig toepassingspad.

– of –

type implementeert de IRegisteredObject interface niet.

appID is null.

– of –

type is null.

failIfExists is true en een object van het opgegeven type is al geregistreerd.

Opmerkingen

Deze overbelasting van de CreateObject methode biedt de throwOnError parameter, waarmee u kunt bepalen of hosting-initialisatie-uitzonderingen worden gegenereerd. De overbelasting van de CreateObject methode die deze overbelasting niet biedt throwOnError , wordt aangeroepen met de parameter die is ingesteld op false.

Van toepassing op