ApplicationManager.CreateObject Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает объект для указанного домена приложения и типа объекта.
Перегрузки
CreateObject(IApplicationHost, Type) |
Создает объект для заданного домена приложения на основе типа. |
CreateObject(String, Type, String, String, Boolean) |
Создает объект для указанного домена приложения на основе типа, виртуального и физического пути, а также логического значения, указывающего на ошибку, когда объект указанного типа уже существует. |
CreateObject(String, Type, String, String, Boolean, Boolean) |
Создает объект для указанного домена приложения на основе типа, виртуального и физического пути, логического значения, указывающего на ошибку, когда объект указанного типа уже существует, и логического значения, указывающего, порождаются ли исключения ошибок инициализации размещения. |
CreateObject(IApplicationHost, 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
Параметры
- appHost
- IApplicationHost
Объект IApplicationHost.
- type
- Type
Тип создаваемого объекта.
Возвращаемое значение
Новый объект типа, заданного в type
.
Исключения
Физический путь для приложения не существует.
Комментарии
CreateObjectпредставлен в платформа .NET Framework версии 3.5. Дополнительные сведения см. в статье Версии и зависимости платформы .NET Framework.
Применяется к
CreateObject(String, Type, String, String, Boolean)
Создает объект для указанного домена приложения на основе типа, виртуального и физического пути, а также логического значения, указывающего на ошибку, когда объект указанного типа уже существует.
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
Параметры
- appId
- String
Уникальный идентификатор приложения, которому принадлежит объект.
- type
- Type
Тип создаваемого объекта.
- virtualPath
- String
Виртуальный путь к приложению.
- physicalPath
- String
Физический путь к приложению.
- failIfExists
- Boolean
true
для порождения исключения, если объект указанного типа уже зарегистрирован; false
для возврата существующего зарегистрированного объекта указанного типа.
Возвращаемое значение
Новый объект указанного type
.
Исключения
physicalPath
равно null
-или-
physicalPath
— недопустимый путь к приложению.
-или-
type
не реализует интерфейс IRegisteredObject .
failIfExists
имеет значение true
, и объект указанного типа уже зарегистрирован.
Примеры
В следующем примере кода показана реализация шаблона проектирования фабрики объектов для зарегистрированных объектов. Использование шаблона фабрики позволяет зарегистрировать несколько экземпляров объекта. В примере содержатся два объекта: SampleComponent
объект, который приложение будет использовать несколько экземпляров и SampleComponentFactory
управляет списком 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
Комментарии
Этот CreateObject метод используется для создания и регистрации объектов в приложении. Можно создать только один объект каждого типа. Если необходимо создать несколько объектов одного типа, необходимо реализовать фабрику объектов. Дополнительные сведения см. в примере кода в этом разделе.
Каждое приложение, определяемое уникальным идентификатором приложения, выполняется в собственном домене приложения. Метод CreateObject создает объект указанного типа в домене приложения приложения, указанного в параметре appID
. Если домен приложения не существует для указанного приложения, он создается перед созданием объекта.
Параметр failIfExists
управляет поведением CreateObject метода, если объект указанного типа уже существует в приложении. В противном случае failIfExists
true
CreateObject метод создает InvalidOperationException исключение.
В этом failIfExists
false
CreateObject случае метод возвращает существующий зарегистрированный объект указанного типа.
Метод CreateObject вызывает перегрузку, принимающую дополнительный throwOnError
параметр с заданным throwOnError
значением false
.
Применяется к
CreateObject(String, Type, String, String, Boolean, Boolean)
Создает объект для указанного домена приложения на основе типа, виртуального и физического пути, логического значения, указывающего на ошибку, когда объект указанного типа уже существует, и логического значения, указывающего, порождаются ли исключения ошибок инициализации размещения.
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
Параметры
- appId
- String
Уникальный идентификатор приложения, которому принадлежит объект.
- type
- Type
Тип создаваемого объекта.
- virtualPath
- String
Виртуальный путь к приложению.
- physicalPath
- String
Физический путь к приложению.
- failIfExists
- Boolean
true
для порождения исключения, если объект указанного типа уже зарегистрирован; false
для возврата существующего зарегистрированного объекта указанного типа.
- throwOnError
- Boolean
true
порождает исключения ошибок инициализации размещения; false
не порождает исключения инициализации размещения.
Возвращаемое значение
Новый объект указанного type
.
Исключения
physicalPath
равно null
-или-
physicalPath
— недопустимый путь к приложению.
-или-
type
не реализует интерфейс IRegisteredObject .
failIfExists
имеет значение true
, и объект указанного типа уже зарегистрирован.
Комментарии
Эта перегрузка CreateObject метода предоставляет throwOnError
параметр, который позволяет управлять тем, создаются ли исключения инициализации размещения. Перегрузка CreateObject метода, который не предоставляет throwOnError
вызовы этой перегрузки с заданным параметром false
.