ApplicationManager.CreateObject Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy obiekt dla określonej domeny aplikacji i typu obiektu.
Przeciążenia
CreateObject(IApplicationHost, Type) |
Tworzy obiekt dla określonej domeny aplikacji na podstawie typu. |
CreateObject(String, Type, String, String, Boolean) |
Tworzy obiekt dla określonej domeny aplikacji na podstawie typów, ścieżek wirtualnych i fizycznych oraz wartości logicznej wskazującej zachowanie błędu, gdy obiekt określonego typu już istnieje. |
CreateObject(String, Type, String, String, Boolean, Boolean) |
Tworzy obiekt dla określonej domeny aplikacji na podstawie typów, ścieżek wirtualnych i fizycznych, wartość logiczna wskazująca zachowanie błędu, gdy obiekt określonego typu już istnieje, a wartość logiczna wskazująca, czy są zgłaszane wyjątki błędów inicjowania hostingu. |
CreateObject(IApplicationHost, Type)
Tworzy obiekt dla określonej domeny aplikacji na podstawie typu.
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
Parametry
- appHost
- IApplicationHost
Obiekt IApplicationHost.
- type
- Type
Typ obiektu do utworzenia.
Zwraca
Nowy obiekt typu określonego w type
pliku .
Wyjątki
Ścieżka fizyczna aplikacji nie istnieje.
Uwagi
CreateObjectjest wprowadzana w wersji .NET Framework 3.5. Aby uzyskać więcej informacji, zobacz Wersje i zależności.
Dotyczy
CreateObject(String, Type, String, String, Boolean)
Tworzy obiekt dla określonej domeny aplikacji na podstawie typów, ścieżek wirtualnych i fizycznych oraz wartości logicznej wskazującej zachowanie błędu, gdy obiekt określonego typu już istnieje.
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
Parametry
- appId
- String
Unikatowy identyfikator aplikacji, która jest właścicielem obiektu.
- type
- Type
Typ obiektu do utworzenia.
- virtualPath
- String
Ścieżka wirtualna do aplikacji.
- physicalPath
- String
Ścieżka fizyczna do aplikacji.
- failIfExists
- Boolean
true
zgłaszać wyjątek, jeśli obiekt określonego typu jest obecnie zarejestrowany; false
aby zwrócić istniejący zarejestrowany obiekt określonego typu.
Zwraca
Nowy obiekt określonego type
obiektu .
Wyjątki
physicalPath
to null
-lub-
physicalPath
nie jest prawidłową ścieżką aplikacji.
-lub-
type
nie implementuje interfejsu IRegisteredObject .
failIfExists
jest true
i obiekt określonego typu jest już zarejestrowany.
Przykłady
Poniższy przykład kodu to implementacja wzorca projektowego fabryki obiektów dla zarejestrowanych obiektów. Użycie wzorca fabryki umożliwia zarejestrowanie wielu wystąpień obiektu. Przykład zawiera dwa obiekty: SampleComponent
, czyli obiekt, w którym aplikacja będzie używać wielu wystąpień i SampleComponentFactory
, które zarządza listą SampleComponent
wystąpień.
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
Uwagi
Metoda CreateObject służy do tworzenia i rejestrowania obiektów w aplikacji. Można utworzyć tylko jeden obiekt każdego typu. Jeśli musisz utworzyć wiele obiektów tego samego typu, musisz zaimplementować fabrykę obiektów. Aby uzyskać więcej informacji, zobacz przykład kodu w tym temacie.
Każda aplikacja identyfikowana przez unikatowy identyfikator aplikacji jest uruchamiana we własnej domenie aplikacji. Metoda CreateObject tworzy obiekt określonego typu w domenie aplikacji aplikacji określonej w parametrze appID
. Jeśli domena aplikacji nie istnieje dla określonej aplikacji, zostanie utworzona przed utworzeniem obiektu.
failIfExists
Parametr steruje zachowaniem CreateObject metody, gdy obiekt określonego typu już istnieje w aplikacji. Gdy failIfExists
jest to true
, CreateObject metoda zgłasza InvalidOperationException wyjątek.
Gdy failIfExists
jest to false
, CreateObject metoda zwraca istniejący zarejestrowany obiekt określonego typu.
Metoda CreateObject wywołuje przeciążenie, które przyjmuje dodatkowy throwOnError
parametr z ustawioną wartością throwOnError
false
.
Dotyczy
CreateObject(String, Type, String, String, Boolean, Boolean)
Tworzy obiekt dla określonej domeny aplikacji na podstawie typów, ścieżek wirtualnych i fizycznych, wartość logiczna wskazująca zachowanie błędu, gdy obiekt określonego typu już istnieje, a wartość logiczna wskazująca, czy są zgłaszane wyjątki błędów inicjowania hostingu.
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
Parametry
- appId
- String
Unikatowy identyfikator aplikacji, która jest właścicielem obiektu.
- type
- Type
Typ obiektu do utworzenia.
- virtualPath
- String
Ścieżka wirtualna do aplikacji.
- physicalPath
- String
Ścieżka fizyczna do aplikacji.
- failIfExists
- Boolean
true
zgłaszać wyjątek, jeśli obiekt określonego typu jest obecnie zarejestrowany; false
aby zwrócić istniejący zarejestrowany obiekt określonego typu.
- throwOnError
- Boolean
true
zgłaszać wyjątki dotyczące błędów inicjowania hostingu; false
aby nie zgłaszać wyjątków inicjowania hostingu.
Zwraca
Nowy obiekt określonego type
obiektu .
Wyjątki
physicalPath
to null
-lub-
physicalPath
nie jest prawidłową ścieżką aplikacji.
-lub-
type
nie implementuje interfejsu IRegisteredObject .
failIfExists
jest true
i obiekt określonego typu jest już zarejestrowany.
Uwagi
To przeciążenie CreateObject metody zapewnia throwOnError
parametr, który umożliwia kontrolowanie, czy są zgłaszane wyjątki inicjowania hostingu. Przeciążenie CreateObject metody, która nie dostarcza throwOnError
wywołań tego przeciążenia z parametrem ustawionym na false
wartość .