ApplicationManager.CreateObject Méthode

Définition

Crée un objet pour le domaine d'application et le type d'objet spécifiés.

Surcharges

CreateObject(IApplicationHost, Type)

Crée un objet pour le domaine d’application spécifié en fonction du type.

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

Crée un objet pour le domaine d'application spécifié selon le type, les chemins d'accès virtuels et physiques et la valeur Boolean indiquant un comportement d'échec lorsqu'un objet du type spécifié existe déjà.

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

Crée un objet pour le domaine d'application spécifié selon le type, les chemins d'accès virtuels et physiques, la valeur Boolean qui indique un comportement d'échec lorsqu'un objet du type spécifié existe déjà, et une valeur Boolean qui indique si des exceptions relatives à des erreurs d'initialisation d'hébergement sont levées.

CreateObject(IApplicationHost, Type)

Crée un objet pour le domaine d’application spécifié en fonction du 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
Public Function CreateObject (appHost As IApplicationHost, type As Type) As IRegisteredObject

Paramètres

type
Type

Type de l’objet à créer.

Retours

Un nouvel objet du type spécifié dans type.

Exceptions

Il n’existe aucun chemin d’accès physique de l’application.

appHost a la valeur null.

-ou-

type a la valeur null.

Remarques

CreateObject est introduit dans le .NET Framework version 3.5. Pour plus d’informations, consultez Versions et dépendances.

S’applique à

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

Crée un objet pour le domaine d'application spécifié selon le type, les chemins d'accès virtuels et physiques et la valeur Boolean indiquant un comportement d'échec lorsqu'un objet du type spécifié existe déjà.

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

Paramètres

appId
String

Identificateur unique de l'application qui possède l'objet.

type
Type

Type de l’objet à créer.

virtualPath
String

Chemin d'accès virtuel de l'application.

physicalPath
String

Chemin d'accès physique à l'application.

failIfExists
Boolean

true pour lever une exception si un objet du type spécifié est actuellement inscrit ; false pour retourner l'objet inscrit existant du type spécifié.

Retours

Nouvel objet du type spécifié.

Exceptions

physicalPath a la valeur null.

- ou -

physicalPath n'est pas un chemin d'accès d'application valide.

- ou -

type n’implémente pas l’interface IRegisteredObject.

appID a la valeur null.

-ou-

type a la valeur null.

failIfExists est true et un objet du type spécifié est déjà inscrit.

Exemples

L’exemple de code suivant est une implémentation du modèle de conception object-factory pour les objets inscrits. L’utilisation du modèle de fabrique vous permet d’inscrire plusieurs instances d’un objet. L’exemple contient deux objets : SampleComponent, qui est l’objet dont l’application utilisera plusieurs instances et SampleComponentFactory, qui gère une liste d’instances SampleComponent .

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

Remarques

La CreateObject méthode est utilisée pour créer et inscrire des objets dans l’application. Un seul objet de chaque type peut être créé. Si vous devez créer plusieurs objets du même type, vous devez implémenter une fabrique d’objets. Pour plus d’informations, consultez l’exemple de code de cette rubrique.

Chaque application, identifiée par un identificateur d’application unique, s’exécute dans son propre domaine d’application. La CreateObject méthode crée un objet du type spécifié dans le domaine d’application de l’application spécifiée dans le appID paramètre . S’il n’existe pas de domaine d’application pour l’application spécifiée, un domaine est créé avant la création de l’objet.

Le failIfExists paramètre contrôle le comportement de la CreateObject méthode lorsqu’un objet du type spécifié existe déjà dans l’application. Quand failIfExists a truela valeur , la CreateObject méthode lève une InvalidOperationException exception.

Quand failIfExists a falsela valeur , la CreateObject méthode retourne l’objet inscrit existant du type spécifié.

La CreateObject méthode appelle la surcharge qui prend un paramètre supplémentaire throwOnError avec throwOnError défini sur false.

S’applique à

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

Crée un objet pour le domaine d'application spécifié selon le type, les chemins d'accès virtuels et physiques, la valeur Boolean qui indique un comportement d'échec lorsqu'un objet du type spécifié existe déjà, et une valeur Boolean qui indique si des exceptions relatives à des erreurs d'initialisation d'hébergement sont levées.

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

Paramètres

appId
String

Identificateur unique de l'application qui possède l'objet.

type
Type

Type de l’objet à créer.

virtualPath
String

Chemin d'accès virtuel de l'application.

physicalPath
String

Chemin d'accès physique à l'application.

failIfExists
Boolean

true pour lever une exception si un objet du type spécifié est actuellement inscrit ; false pour retourner l'objet inscrit existant du type spécifié.

throwOnError
Boolean

true pour lever des exceptions relatives à des erreurs d'initialisation d'hébergement ; false pour ne pas lever d'exceptions relatives à l'initialisation d'hébergement.

Retours

Nouvel objet du type spécifié.

Exceptions

physicalPath a la valeur null.

- ou -

physicalPath n'est pas un chemin d'accès d'application valide.

- ou -

type n’implémente pas l’interface IRegisteredObject.

appID a la valeur null.

-ou-

type a la valeur null.

failIfExists est true et un objet du type spécifié est déjà inscrit.

Remarques

Cette surcharge de la CreateObject méthode fournit le throwOnError paramètre , qui vous permet de contrôler si les exceptions d’initialisation d’hébergement sont levées. La surcharge de la CreateObject méthode qui ne fournit throwOnError pas appelle cette surcharge avec le paramètre défini sur false.

S’applique à