ApplicationManager.CreateObject Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar ett objekt för den angivna programdomänen och objekttypen.
Överlagringar
| Name | Description |
|---|---|
| CreateObject(IApplicationHost, Type) |
Skapar ett objekt för den angivna programdomänen baserat på typ. |
| CreateObject(String, Type, String, String, Boolean) |
Skapar ett objekt för den angivna programdomänen baserat på typ, virtuella och fysiska sökvägar och ett booleskt värde som anger felbeteende när ett objekt av den angivna typen redan finns. |
| CreateObject(String, Type, String, String, Boolean, Boolean) |
Skapar ett objekt för den angivna programdomänen baserat på typ, virtuella och fysiska sökvägar, ett booleskt värde som indikerar felbeteende när ett objekt av den angivna typen redan finns och ett booleskt värde som anger om värdfelsfelfel genereras. |
CreateObject(IApplicationHost, Type)
Skapar ett objekt för den angivna programdomänen baserat på 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
Parametrar
- appHost
- IApplicationHost
Ett IApplicationHost objekt.
- type
- Type
Typen av objekt som ska skapas.
Returer
Ett nytt objekt av den typ som anges i type.
Undantag
Det finns ingen fysisk sökväg för programmet.
Kommentarer
CreateObject introduceras i .NET Framework version 3.5. Mer information finns i Versioner och beroenden.
Gäller för
CreateObject(String, Type, String, String, Boolean)
Skapar ett objekt för den angivna programdomänen baserat på typ, virtuella och fysiska sökvägar och ett booleskt värde som anger felbeteende när ett objekt av den angivna typen redan finns.
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
Parametrar
- appId
- String
Den unika identifieraren för det program som äger objektet.
- type
- Type
Typen av objekt som ska skapas.
- virtualPath
- String
Den virtuella sökvägen till programmet.
- physicalPath
- String
Den fysiska sökvägen till programmet.
- failIfExists
- Boolean
true för att utlösa ett undantag om ett objekt av den angivna typen för närvarande är registrerat. false för att returnera det befintliga registrerade objektet av den angivna typen.
Returer
Ett nytt objekt i det angivna type.
Undantag
physicalPath är null
-eller-
physicalPath är inte en giltig programsökväg.
-eller-
type implementerar IRegisteredObject inte gränssnittet.
failIfExists är true och ett objekt av den angivna typen har redan registrerats.
Exempel
Följande kodexempel är en implementering av designmönstret object-factory för registrerade objekt. Med hjälp av fabriksmönstret kan du registrera flera instanser av ett objekt. Exemplet innehåller två objekt: SampleComponent, vilket är det objekt som programmet ska använda flera instanser av och SampleComponentFactory, som hanterar en lista över SampleComponent instanser.
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
Kommentarer
Metoden CreateObject används för att skapa och registrera objekt i programmet. Det går bara att skapa ett objekt av varje typ. Om du behöver skapa flera objekt av samma typ måste du implementera en objektfabrik. Mer information finns i kodexemplet i det här avsnittet.
Varje program, som identifieras av en unik programidentifierare, körs i sin egen programdomän. Metoden CreateObject skapar ett objekt av den angivna typen i programdomänen för programmet som anges i parametern appID . Om det inte finns någon programdomän för det angivna programmet skapas en innan objektet skapas.
Parametern failIfExists styr metodens CreateObject beteende när ett objekt av den angivna typen redan finns i programmet. När failIfExists är trueCreateObject genererar metoden ett InvalidOperationException undantag.
När failIfExists är falseCreateObject returnerar metoden det befintliga registrerade objektet av den angivna typen.
Metoden CreateObject anropar den överlagring som tar ytterligare throwOnError en parameter med throwOnError värdet false.
Gäller för
CreateObject(String, Type, String, String, Boolean, Boolean)
Skapar ett objekt för den angivna programdomänen baserat på typ, virtuella och fysiska sökvägar, ett booleskt värde som indikerar felbeteende när ett objekt av den angivna typen redan finns och ett booleskt värde som anger om värdfelsfelfel genereras.
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
Parametrar
- appId
- String
Den unika identifieraren för det program som äger objektet.
- type
- Type
Typen av objekt som ska skapas.
- virtualPath
- String
Den virtuella sökvägen till programmet.
- physicalPath
- String
Den fysiska sökvägen till programmet.
- failIfExists
- Boolean
true för att utlösa ett undantag om ett objekt av den angivna typen för närvarande är registrerat. false för att returnera det befintliga registrerade objektet av den angivna typen.
- throwOnError
- Boolean
true för att utlösa undantag för värdinitieringsfel; false för att inte utlösa värdinitieringsfel.
Returer
Ett nytt objekt i det angivna type.
Undantag
physicalPath är null
-eller-
physicalPath är inte en giltig programsökväg.
-eller-
type implementerar IRegisteredObject inte gränssnittet.
failIfExists är true och ett objekt av den angivna typen har redan registrerats.
Kommentarer
Den här överlagringen CreateObject av metoden ger parametern throwOnError som gör att du kan styra om värdinitieringsfel genereras. Överlagringen av metoden CreateObject som inte ger throwOnError anropar den här överlagringen med parametern inställd på false.