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. Дополнительные сведения см. в разделе "Версии и зависимости".
Применяется к
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 is 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 метода, когда объект указанного типа уже существует в приложении. В противном случае failIfExiststrueCreateObject метод создает InvalidOperationException исключение.
При failIfExists этом falseCreateObject метод возвращает существующий зарегистрированный объект указанного типа.
Метод 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 is true и объект указанного типа уже зарегистрирован.
Комментарии
Эта перегрузка CreateObject метода предоставляет throwOnError параметр, который позволяет контролировать, возникают ли исключения инициализации размещения. Перегрузка CreateObject метода, который не предоставляет throwOnError вызовы этой перегрузки с заданным параметром false.