ApplicationManager.CreateObject Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen uygulama etki alanı ve nesne türü için bir nesne oluşturur.
Aşırı Yüklemeler
CreateObject(IApplicationHost, Type) |
Belirtilen uygulama etki alanı için türe göre bir nesne oluşturur. |
CreateObject(String, Type, String, String, Boolean) |
Belirtilen uygulama etki alanı için türü, sanal ve fiziksel yolları temel alan bir nesne ve belirtilen türdeki bir nesne zaten mevcut olduğunda hata davranışını gösteren bir Boole değeri oluşturur. |
CreateObject(String, Type, String, String, Boolean, Boolean) |
Belirtilen uygulama etki alanı için tür, sanal ve fiziksel yollar, belirtilen türdeki bir nesne zaten mevcut olduğunda hata davranışını gösteren bir Boole değeri ve barındırma başlatma hatası özel durumlarının oluşturulup oluşturulmadığını gösteren bir Boole değeri temelinde bir nesne oluşturur. |
CreateObject(IApplicationHost, Type)
Belirtilen uygulama etki alanı için türe göre bir nesne oluşturur.
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
Parametreler
- appHost
- IApplicationHost
Bir IApplicationHost nesnesi.
- type
- Type
Oluşturulacak nesnenin türü.
Döndürülenler
içinde type
belirtilen türde yeni bir nesne.
Özel durumlar
Uygulama için fiziksel bir yol yok.
Açıklamalar
CreateObject.NET Framework sürüm 3.5'te kullanıma sunulmuştur. Daha fazla bilgi için bkz . Sürümler ve Bağımlılıklar.
Şunlara uygulanır
CreateObject(String, Type, String, String, Boolean)
Belirtilen uygulama etki alanı için türü, sanal ve fiziksel yolları temel alan bir nesne ve belirtilen türdeki bir nesne zaten mevcut olduğunda hata davranışını gösteren bir Boole değeri oluşturur.
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
Parametreler
- appId
- String
Nesnenin sahibi olan uygulamanın benzersiz tanımlayıcısı.
- type
- Type
Oluşturulacak nesnenin türü.
- virtualPath
- String
Uygulamanın sanal yolu.
- physicalPath
- String
Uygulamanın fiziksel yolu.
- failIfExists
- Boolean
true
belirtilen türdeki bir nesne şu anda kayıtlıysa bir özel durum oluşturma; false
belirtilen türdeki mevcut kayıtlı nesneyi döndürmek için.
Döndürülenler
Belirtilen type
öğesinin yeni nesnesi.
Özel durumlar
physicalPath
null
-veya-
physicalPath
geçerli bir uygulama yolu değil.
-veya-
type
arabirimini IRegisteredObject uygulamaz.
failIfExists
ve true
belirtilen türde bir nesne zaten kayıtlı.
Örnekler
Aşağıdaki kod örneği, kayıtlı nesneler için object-factory tasarım deseninin bir uygulamasıdır. Fabrika desenini kullanmak, bir nesnenin birden çok örneğini kaydetmenizi sağlar. Örnek iki nesne içerir: SampleComponent
uygulamanın birden çok örneğini kullanacağı nesne olan ve SampleComponentFactory
örnek listesini SampleComponent
yöneten .
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
Açıklamalar
CreateObject yöntemi, uygulamadaki nesneleri oluşturmak ve kaydetmek için kullanılır. Her türden yalnızca bir nesne oluşturulabilir. Aynı türde birden çok nesne oluşturmanız gerekiyorsa, bir nesne fabrikası uygulamanız gerekir. Daha fazla bilgi için bu konudaki kod örneğine bakın.
Benzersiz bir uygulama tanımlayıcısıyla tanımlanan her uygulama kendi uygulama etki alanında çalışır. yöntemi, CreateObject parametresinde belirtilen uygulamanın uygulama etki alanında belirtilen appID
türde bir nesne oluşturur. Belirtilen uygulama için bir uygulama etki alanı yoksa, nesne oluşturulmadan önce bir etki alanı oluşturulur.
parametresi, failIfExists
belirtilen türde bir nesne uygulamada zaten mevcut olduğunda yönteminin davranışını CreateObject denetler. olduğunda failIfExists
true
CreateObject yöntemi bir InvalidOperationException özel durum oluşturur.
olduğunda failIfExists
false
CreateObject, yöntemi belirtilen türdeki mevcut kayıtlı nesneyi döndürür.
yöntemi, CreateObject olarak ayarlanmış false
ek throwOnError
bir parametre throwOnError
alan aşırı yüklemeyi çağırır.
Şunlara uygulanır
CreateObject(String, Type, String, String, Boolean, Boolean)
Belirtilen uygulama etki alanı için tür, sanal ve fiziksel yollar, belirtilen türdeki bir nesne zaten mevcut olduğunda hata davranışını gösteren bir Boole değeri ve barındırma başlatma hatası özel durumlarının oluşturulup oluşturulmadığını gösteren bir Boole değeri temelinde bir nesne oluşturur.
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
Parametreler
- appId
- String
Nesnenin sahibi olan uygulamanın benzersiz tanımlayıcısı.
- type
- Type
Oluşturulacak nesnenin türü.
- virtualPath
- String
Uygulamanın sanal yolu.
- physicalPath
- String
Uygulamanın fiziksel yolu.
- failIfExists
- Boolean
true
belirtilen türdeki bir nesne şu anda kayıtlıysa bir özel durum oluşturma; false
belirtilen türdeki mevcut kayıtlı nesneyi döndürmek için.
- throwOnError
- Boolean
true
başlatma hatalarını barındırmak için özel durumlar oluşturma; false
barındırma başlatma özel durumları oluşturmamak için.
Döndürülenler
Belirtilen type
öğesinin yeni nesnesi.
Özel durumlar
physicalPath
null
-veya-
physicalPath
geçerli bir uygulama yolu değil.
-veya-
type
arabirimini IRegisteredObject uygulamaz.
failIfExists
ve true
belirtilen türde bir nesne zaten kayıtlı.
Açıklamalar
yönteminin CreateObject bu aşırı yüklemesi, barındırma başlatma özel durumlarının oluşturulup oluşturulmayacağını denetlemenize olanak tanıyan parametresini sağlar throwOnError
. sağlamayan throwOnError
yöntemin CreateObject aşırı yüklemesi, parametresi olarak ayarlanmış false
şekilde bu aşırı yüklemeyi çağırır.