Aracılığıyla paylaş


ApplicationManager.CreateObject Yöntem

Tanım

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 typebelirtilen türde yeni bir nesne.

Özel durumlar

Uygulama için fiziksel bir yol yok.

appHost, null değeridir.

-veya-

type, null değeridir.

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.

appID, null değeridir.

-veya-

type, null değeridir.

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: SampleComponentuygulamanı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 failIfExiststrueCreateObject yöntemi bir InvalidOperationException özel durum oluşturur.

olduğunda failIfExistsfalseCreateObject, yöntemi belirtilen türdeki mevcut kayıtlı nesneyi döndürür.

yöntemi, CreateObject olarak ayarlanmış falseek 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.

appID, null değeridir.

-veya-

type, null değeridir.

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.

Şunlara uygulanır