ServicedComponent Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет базовый класс всех классов с помощью служб COM+.
public ref class ServicedComponent abstract : ContextBoundObject, IDisposable, System::EnterpriseServices::IRemoteDispatch, System::EnterpriseServices::IServicedComponentInfo
[System.Serializable]
public abstract class ServicedComponent : ContextBoundObject, IDisposable, System.EnterpriseServices.IRemoteDispatch, System.EnterpriseServices.IServicedComponentInfo
[<System.Serializable>]
type ServicedComponent = class
inherit ContextBoundObject
interface IRemoteDispatch
interface IDisposable
interface IServicedComponentInfo
Public MustInherit Class ServicedComponent
Inherits ContextBoundObject
Implements IDisposable, IRemoteDispatch, IServicedComponentInfo
- Наследование
- Производный
- Атрибуты
- Реализации
Примеры
В следующем примере кода показано, как предоставить класс в качестве настроенного com-компонента.
[assembly:ApplicationName("Calculator")];
[assembly:ApplicationActivation(ActivationOption::Library)];
[assembly:System::Reflection::AssemblyKeyFile("Calculator.snk")];
public ref class Calculator: public ServicedComponent
{
public:
int Add( int x, int y )
{
return (x + y);
}
};
using System;
using System.EnterpriseServices;
[assembly: ApplicationName("Calculator")]
[assembly: ApplicationActivation(ActivationOption.Library)]
[assembly: System.Reflection.AssemblyKeyFile("Calculator.snk")]
public class Calculator : ServicedComponent
{
public int Add (int x, int y)
{
return(x+y);
}
}
Чтобы развернуть этот класс в качестве настроенного COM-компонента, необходимо создать надежный ключ, скомпилировать класс как библиотеку и зарегистрировать библиотеку. Эти три шага выполняются следующими тремя командами.
sn -k Calculator.snk
csc /t:library Calculator.cs
regsvcs Calculator.dll
Комментарии
В определенных условиях класс, производный от ServicedComponent этого, работает в приложении COM+ может перестать отвечать. Эта проблема вызвана взаимоблокировкой действий. Действия могут взаимоблокировки для многопоточных приложений из-за асинхронной очистки ссылок на компоненты. Чтобы обойти эту проблему, вызовите метод при завершении работы с объектами Dispose , производными от ServicedComponent.
Note
Клиентский код должен вызывать Dispose обслуживаемые компоненты, чтобы обеспечить правильную работу.
Конструкторы
| Имя | Описание |
|---|---|
| ServicedComponent() |
Инициализирует новый экземпляр класса ServicedComponent. |
Методы
| Имя | Описание |
|---|---|
| Activate() |
Вызывается инфраструктурой при создании или выделении объекта из пула. Переопределите этот метод, чтобы добавить в объекты пользовательский код инициализации. |
| CanBePooled() |
Этот метод вызывается инфраструктурой до возвращения объекта в пул. Переопределите этот метод, чтобы проголосовать за то, помещается ли объект обратно в пул. |
| Construct(String) |
Вызывается инфраструктурой сразу после вызова конструктора, передавая строку конструктора. Переопределите этот метод, чтобы использовать строковое значение конструкции. |
| CreateObjRef(Type) |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
| Deactivate() |
Вызывается инфраструктурой, когда объект будет деактивирован. Переопределите этот метод, чтобы добавить пользовательский код завершения к объектам, когда используется скомпилированный код JIT или пул объектов. |
| Dispose() |
Освобождает все ресурсы, используемые параметром ServicedComponent. |
| Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые ServicedComponent и при необходимости освобождает управляемые ресурсы. |
| DisposeObject(ServicedComponent) |
Завершает объект и удаляет связанную ссылку COM+. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetLifetimeService() |
Устаревшие..
Извлекает текущий объект службы времени существования, который управляет политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| InitializeLifetimeService() |
Устаревшие..
Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| MemberwiseClone(Boolean) |
Создает неглубокую копию текущего MarshalByRefObject объекта. (Унаследовано от MarshalByRefObject) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IRemoteDispatch.RemoteDispatchAutoDone(String) |
Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода. Гарантирует, что в контексте ServicedComponent COM+ бит объекта |
| IRemoteDispatch.RemoteDispatchNotAutoDone(String) |
Не гарантирует, что в контексте ServicedComponent COM+ бит объекта |
| IServicedComponentInfo.GetComponentInfo(Int32, String[]) |
Получает определенные сведения об экземпляре ServicedComponent класса. |