ApplicationManager.CreateObject ApplicationManager.CreateObject ApplicationManager.CreateObject Method

定義

指定したアプリケーション ドメインおよびオブジェクト型のオブジェクトを作成します。Creates an object for the specified application domain and object type.

オーバーロード

CreateObject(IApplicationHost, Type) CreateObject(IApplicationHost, Type) CreateObject(IApplicationHost, Type)

種類に基づいて、指定されたアプリケーション ドメインのオブジェクトを作成します。Creates an object for the specified application domain, based on type.

CreateObject(String, Type, String, String, Boolean) CreateObject(String, Type, String, String, Boolean) CreateObject(String, Type, String, String, Boolean)

型、仮想パスと物理パス、および、指定した型のオブジェクトが既に存在する場合のエラー動作を示すブール値に基づいて、指定したアプリケーション ドメインのオブジェクトを作成します。Creates an object for the specified application domain based on type, virtual and physical paths, and a Boolean value indicating failure behavior when an object of the specified type already exists.

CreateObject(String, Type, String, String, Boolean, Boolean) CreateObject(String, Type, String, String, Boolean, Boolean) CreateObject(String, Type, String, String, Boolean, Boolean)

型、仮想パスと物理パス、指定した型のオブジェクトが既に存在する場合のエラー動作を示すブール値、および、ホスト初期化エラーの例外をスローするかどうかを示すブール値に基づいて、指定したアプリケーション ドメインのオブジェクトを作成します。Creates an object for the specified application domain based on type, virtual and physical paths, a Boolean value indicating failure behavior when an object of the specified type already exists, and a Boolean value indicating whether hosting initialization error exceptions are thrown.

CreateObject(IApplicationHost, Type) CreateObject(IApplicationHost, Type) CreateObject(IApplicationHost, Type)

種類に基づいて、指定されたアプリケーション ドメインのオブジェクトを作成します。Creates an object for the specified application domain, based on 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

パラメーター

type
Type Type Type

作成するオブジェクトの種類。The type of the object to create.

戻り値

type で指定された型の新しいオブジェクト。A new object of the type specified in type.

例外

アプリケーションの物理パスが存在しません。A physical path for the application does not exist.

appHostnullです。appHost is null.

- または --or- typenullです。type is null.

注釈

CreateObject .NET Framework version 3.5 で導入されました。CreateObject is introduced in the .NET Framework version 3.5. 詳細については、「.NET Framework のバージョンおよび依存関係」を参照してください。For more information, see Versions and Dependencies.

CreateObject(String, Type, String, String, Boolean) CreateObject(String, Type, String, String, Boolean) CreateObject(String, Type, String, String, Boolean)

型、仮想パスと物理パス、および、指定した型のオブジェクトが既に存在する場合のエラー動作を示すブール値に基づいて、指定したアプリケーション ドメインのオブジェクトを作成します。Creates an object for the specified application domain based on type, virtual and physical paths, and a Boolean value indicating failure behavior when an object of the specified type already exists.

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

パラメーター

appId
String String String

オブジェクトを所有するアプリケーションの一意の識別子。The unique identifier for the application that owns the object.

type
Type Type Type

作成するオブジェクトの種類。The type of the object to create.

virtualPath
String String String

アプリケーションへの仮想パス。The virtual path to the application.

physicalPath
String String String

アプリケーションへの物理パス。The physical path to the application.

failIfExists
Boolean Boolean Boolean

指定した型のオブジェクトが現在登録されている場合に例外をスローするには true。指定した型の既存の登録済みオブジェクトを返すには falsetrue to throw an exception if an object of the specified type is currently registered; false to return the existing registered object of the specified type.

戻り値

指定した type の新しいオブジェクト。A new object of the specified type.

例外

physicalPathnull ですphysicalPath is null

または-or- physicalPath が有効なアプリケーション パスではありません。physicalPath is not a valid application path.

または-or- typeIRegisteredObject インターフェイスを実装していません。type does not implement the IRegisteredObject interface.

appIDnullです。appID is null.

- または --or- typenullです。type is null.

failIfExiststrue で、指定した型のオブジェクトが既に登録されています。failIfExists is true and an object of the specified type is already registered.

次のコード例は、登録済みのオブジェクトのオブジェクト ファクトリ デザイン パターンの実装です。The following code example is an implementation of the object-factory design pattern for registered objects. ファクトリ パターンを使用するには、オブジェクトの複数のインスタンスを登録することができます。Using the factory pattern enables you to register multiple instances of an object. 例では、2 つのオブジェクトが含まれています:SampleComponentの複数のインスタンスを使用して、オブジェクト、アプリケーションであるとSampleComponentFactoryの一覧を管理SampleComponentインスタンス。The example contains two objects: SampleComponent, which is the object the application will use multiple instances of, and SampleComponentFactory, which manages a list of SampleComponent instances.

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

注釈

CreateObject作成し、アプリケーションでオブジェクトを登録するメソッドを使用します。The CreateObject method is used to create and register objects in the application. 各型の 1 つのオブジェクトを作成できます。Only one object of each type can be created. 同じ型の複数のオブジェクトを作成する必要がある場合は、オブジェクト ファクトリを実装する必要があります。If you need to create multiple objects of the same type, you must implement an object factory. 詳細については、このトピックのコード例を参照してください。For more information, see the code example in this topic.

一意のアプリケーション id で識別される、各アプリケーションは、独自のアプリケーション ドメインで実行されます。Each application, identified by a unique application identifier, runs in its own application domain. CreateObjectメソッドで指定されたアプリケーションのアプリケーション ドメインで指定した型のオブジェクトを作成する、appIDパラメーター。The CreateObject method creates an object of the specified type in the application domain of the application specified in the appID parameter. 指定したアプリケーションのアプリケーション ドメインが存在しない場合、オブジェクトが作成される前に作成されます。If an application domain does not exist for the specified application, one is created before the object is created.

failIfExistsの動作を制御するパラメーター、CreateObjectメソッド、アプリケーションで指定した型のオブジェクトが既に存在する場合。The failIfExists parameter controls the behavior of the CreateObject method when an object of the specified type already exists in the application. ときにfailIfExiststrueCreateObjectメソッドがスローされます、InvalidOperationException例外。When failIfExists is true, the CreateObject method throws an InvalidOperationException exception.

ときにfailIfExistsfalseCreateObjectメソッドは、指定した型の既存の登録済みオブジェクトを返します。When failIfExists is false, the CreateObject method returns the existing registered object of the specified type.

CreateObjectメソッドの呼び出しを追加するオーバー ロードをthrowOnErrorパラメーターthrowOnErrorに設定falseします。The CreateObject method calls the overload that takes an additional throwOnError parameter with throwOnError set to false.

CreateObject(String, Type, String, String, Boolean, Boolean) CreateObject(String, Type, String, String, Boolean, Boolean) CreateObject(String, Type, String, String, Boolean, Boolean)

型、仮想パスと物理パス、指定した型のオブジェクトが既に存在する場合のエラー動作を示すブール値、および、ホスト初期化エラーの例外をスローするかどうかを示すブール値に基づいて、指定したアプリケーション ドメインのオブジェクトを作成します。Creates an object for the specified application domain based on type, virtual and physical paths, a Boolean value indicating failure behavior when an object of the specified type already exists, and a Boolean value indicating whether hosting initialization error exceptions are thrown.

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

パラメーター

appId
String String String

オブジェクトを所有するアプリケーションの一意の識別子。The unique identifier for the application that owns the object.

type
Type Type Type

作成するオブジェクトの種類。The type of the object to create.

virtualPath
String String String

アプリケーションへの仮想パス。The virtual path to the application.

physicalPath
String String String

アプリケーションへの物理パス。The physical path to the application.

failIfExists
Boolean Boolean Boolean

指定した型のオブジェクトが現在登録されている場合に例外をスローするには true。指定した型の既存の登録済みオブジェクトを返すには falsetrue to throw an exception if an object of the specified type is currently registered; false to return the existing registered object of the specified type.

throwOnError
Boolean Boolean Boolean

ホスト初期化エラーの例外をスローする場合は true。ホスト初期化例外をスローしない場合は falsetrue to throw exceptions for hosting initialization errors; false to not throw hosting initialization exceptions.

戻り値

指定した type の新しいオブジェクト。A new object of the specified type.

例外

physicalPathnull ですphysicalPath is null

または-or- physicalPath が有効なアプリケーション パスではありません。physicalPath is not a valid application path.

または-or- typeIRegisteredObject インターフェイスを実装していません。type does not implement the IRegisteredObject interface.

appIDnullです。appID is null.

- または --or- typenullです。type is null.

failIfExiststrue で、指定した型のオブジェクトが既に登録されています。failIfExists is true and an object of the specified type is already registered.

注釈

このオーバー ロード、CreateObjectメソッドを提供、throwOnErrorパラメーターで、ホスト初期化例外をスローするかどうかを制御できます。This overload of the CreateObject method provides the throwOnError parameter, which allows you to control whether hosting initialization exceptions are thrown. オーバー ロード、CreateObjectメソッドを提供しないthrowOnErrorパラメーターを設定してこのオーバー ロードを呼び出すfalseします。The overload of the CreateObject method that does not provide throwOnError calls this overload with the parameter set to false.

適用対象