Книга: C# для профессионалов. Том II
Интерфейс ServicedComponent
Интерфейс ServicedComponent
Как можно было заметить, класс в примере выше наследует интерфейс ServicedComponent
. Все классы .NET, которые используют пулы объектов, должны реализовывать этот интерфейс. ServicedComponent
содержит три метода для переопределения.
1. Метод CanBePooled()
используется клиентами для определения, что может быть создан пул объектов класса.
2. Метод Activate()
вызывается службами COM+ на объекте в пуле перед тем, как этот объект передается новому клиенту.
3. Метод Deactivate()
, напарник метода Activate()
, вызывается службами COM+, когда объект освобождается клиентом, чтобы вернуть его в пул доступных объектов.
Следующий фрагмент кода показывает класс, сконфигурированный для пула объектов.
[ObjectPooling (Enabled=true, MinPoolSize=1, MaxPoolSize=100, CreationTimeout=30)]
public class CreditCard:ServicedComponent {
// Этот метод будет вызываться службами COM+ для определения,
// что объект находится в пуле.
public override bool CanBePooled() {
return true; // необходимо вернуть логическое "true"
}
// Этот метод должен вызываться службами COM+, когда объект
// передается клиенту.
public override void Activate() {
// Код инициализации находится здесь.
}
// Этот метод будет вызываться службами COM+, когда
// объект будет возвращаться в пул.
public override void Deactivate() {
// Код завершения находится здесь
}
// Этот метод будет вызываться клиентом.
public void PlaceCharge(int OrderInfo, int UserInfo) {
// код списания средств с кредитной карты находится здесь
}
}
Как показывает пример, атрибут ObjectPooling
и интерфейс ServicedComponent
требуются для того, чтобы класс .NET реализовал пул объектов. Также можно заметить, что в отличие от атрибута Transaction
атрибут ObjectPooling
применяется непосредственно к "рабочей" сборке .NET, а не к классу прокси, созданному с атрибутом ComEmulate
, который был рассмотрен ранее в этой главе.
- 12. Лекция: Создание приложений с графическим интерфейсом пользователя.
- 5.21 IP-адреса, интерфейсы и множественное пребывание
- Множественные интерфейсы и имена методов
- 2.1 Интерфейс SCSI
- 2.2 Интерфейсы IDE, EIDE и АТА
- 7.2 Интерфейс WMI
- 7.5 Программные интерфейсы приложений для адаптеров шины
- Не допускайте того, чтобы поток пользовательского интерфейса блокировался на длительное время
- Абстрактные базы как двоичные интерфейсы
- Интерфейсы накопителей на жестких магнитных дисках
- Интерфейс SATA
- 8.4. Оформляем интерфейс проигрывателя