Udostępnij za pośrednictwem


ApplicationManager.CreateObject Metoda

Definicja

Tworzy obiekt dla określonej domeny aplikacji i typu obiektu.

Przeciążenia

CreateObject(IApplicationHost, Type)

Tworzy obiekt dla określonej domeny aplikacji na podstawie typu.

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

Tworzy obiekt dla określonej domeny aplikacji na podstawie typów, ścieżek wirtualnych i fizycznych oraz wartości logicznej wskazującej zachowanie błędu, gdy obiekt określonego typu już istnieje.

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

Tworzy obiekt dla określonej domeny aplikacji na podstawie typów, ścieżek wirtualnych i fizycznych, wartość logiczna wskazująca zachowanie błędu, gdy obiekt określonego typu już istnieje, a wartość logiczna wskazująca, czy są zgłaszane wyjątki błędów inicjowania hostingu.

CreateObject(IApplicationHost, Type)

Tworzy obiekt dla określonej domeny aplikacji na podstawie typu.

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

Parametry

type
Type

Typ obiektu do utworzenia.

Zwraca

IRegisteredObject

Nowy obiekt typu określonego w typepliku .

Wyjątki

Ścieżka fizyczna aplikacji nie istnieje.

appHost to null.

-lub- type to null.

Uwagi

CreateObjectjest wprowadzana w wersji .NET Framework 3.5. Aby uzyskać więcej informacji, zobacz Wersje i zależności.

Dotyczy

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

Tworzy obiekt dla określonej domeny aplikacji na podstawie typów, ścieżek wirtualnych i fizycznych oraz wartości logicznej wskazującej zachowanie błędu, gdy obiekt określonego typu już istnieje.

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

Parametry

appId
String

Unikatowy identyfikator aplikacji, która jest właścicielem obiektu.

type
Type

Typ obiektu do utworzenia.

virtualPath
String

Ścieżka wirtualna do aplikacji.

physicalPath
String

Ścieżka fizyczna do aplikacji.

failIfExists
Boolean

true zgłaszać wyjątek, jeśli obiekt określonego typu jest obecnie zarejestrowany; false aby zwrócić istniejący zarejestrowany obiekt określonego typu.

Zwraca

IRegisteredObject

Nowy obiekt określonego typeobiektu .

Wyjątki

physicalPath to null

-lub- physicalPath nie jest prawidłową ścieżką aplikacji.

-lub- type nie implementuje interfejsu IRegisteredObject .

appID to null.

-lub- type to null.

failIfExists jest true i obiekt określonego typu jest już zarejestrowany.

Przykłady

Poniższy przykład kodu to implementacja wzorca projektowego fabryki obiektów dla zarejestrowanych obiektów. Użycie wzorca fabryki umożliwia zarejestrowanie wielu wystąpień obiektu. Przykład zawiera dwa obiekty: SampleComponent, czyli obiekt, w którym aplikacja będzie używać wielu wystąpień i SampleComponentFactory, które zarządza listą SampleComponent wystąpień.

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

Uwagi

Metoda CreateObject służy do tworzenia i rejestrowania obiektów w aplikacji. Można utworzyć tylko jeden obiekt każdego typu. Jeśli musisz utworzyć wiele obiektów tego samego typu, musisz zaimplementować fabrykę obiektów. Aby uzyskać więcej informacji, zobacz przykład kodu w tym temacie.

Każda aplikacja identyfikowana przez unikatowy identyfikator aplikacji jest uruchamiana we własnej domenie aplikacji. Metoda CreateObject tworzy obiekt określonego typu w domenie aplikacji aplikacji określonej w parametrze appID . Jeśli domena aplikacji nie istnieje dla określonej aplikacji, zostanie utworzona przed utworzeniem obiektu.

failIfExists Parametr steruje zachowaniem CreateObject metody, gdy obiekt określonego typu już istnieje w aplikacji. Gdy failIfExists jest to true, CreateObject metoda zgłasza InvalidOperationException wyjątek.

Gdy failIfExists jest to false, CreateObject metoda zwraca istniejący zarejestrowany obiekt określonego typu.

Metoda CreateObject wywołuje przeciążenie, które przyjmuje dodatkowy throwOnError parametr z ustawioną wartością throwOnError false.

Dotyczy

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

Tworzy obiekt dla określonej domeny aplikacji na podstawie typów, ścieżek wirtualnych i fizycznych, wartość logiczna wskazująca zachowanie błędu, gdy obiekt określonego typu już istnieje, a wartość logiczna wskazująca, czy są zgłaszane wyjątki błędów inicjowania hostingu.

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

Parametry

appId
String

Unikatowy identyfikator aplikacji, która jest właścicielem obiektu.

type
Type

Typ obiektu do utworzenia.

virtualPath
String

Ścieżka wirtualna do aplikacji.

physicalPath
String

Ścieżka fizyczna do aplikacji.

failIfExists
Boolean

true zgłaszać wyjątek, jeśli obiekt określonego typu jest obecnie zarejestrowany; false aby zwrócić istniejący zarejestrowany obiekt określonego typu.

throwOnError
Boolean

true zgłaszać wyjątki dotyczące błędów inicjowania hostingu; false aby nie zgłaszać wyjątków inicjowania hostingu.

Zwraca

IRegisteredObject

Nowy obiekt określonego typeobiektu .

Wyjątki

physicalPath to null

-lub- physicalPath nie jest prawidłową ścieżką aplikacji.

-lub- type nie implementuje interfejsu IRegisteredObject .

appID to null.

-lub- type to null.

failIfExists jest true i obiekt określonego typu jest już zarejestrowany.

Uwagi

To przeciążenie CreateObject metody zapewnia throwOnError parametr, który umożliwia kontrolowanie, czy są zgłaszane wyjątki inicjowania hostingu. Przeciążenie CreateObject metody, która nie dostarcza throwOnError wywołań tego przeciążenia z parametrem ustawionym na falsewartość .

Dotyczy