ApplicationManager.CreateObject Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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.
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.
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.
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.