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 バージョン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.

一意のアプリケーション識別子によって識別される各アプリケーションは、独自のアプリケーションドメインで実行されます。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. failIfExists CreateObject InvalidOperationExceptionの場合、メソッドは例外をスローします。 trueWhen failIfExists is true, the CreateObject method throws an InvalidOperationException exception.

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

メソッドCreateObjectは、をthrowOnErrorthrowOnError 設定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.

適用対象