664
Chương 17: Sự hòa hợp với môi trường Windows
thức thừa kế để hiện thực các chức năng cần thiết. Hiện thực phương thức
Main
,
trong đó tạo một thể hiện của lớp dịch vụ và truyền nó cho phương thức tĩnh
ServiceBase.Run
.
Nếu đang sử dụng Microsoft Visual C# .NET, bạn có thể dùng mẫu dự án Windows Service để
tạo một dịch vụ Windows. Mẫu này cung cấp sẵn các mã lệnh cơ bản cần cho một lớp dịch vụ,
và bạn có thể hiện thực thêm các chức năng tùy biến.
Để tạo một dịch vụ Windows bằng tay, bạn phải hiện thực một lớp dẫn xuất từ
ServiceBase
.
Lớp
ServiceBase
cung cấp các chức năng cơ bản cho phép Windows Service Control
Manager (SCM) cấu hình dịch vụ, thi hành dịch vụ dưới nền, và điều khiển thời gian sống của
dịch vụ. SCM cũng điều khiển việc các ứng dụng khác có thể điều khiển dịch vụ như thế nào.
Lớp
ServiceBase
được định nghĩa trong
System.Serviceprocess
, do đó bạn phải
thêm một tham chiếu đến assembly này khi xây dựng lớp dịch vụ.
Hình 17.1 Mẫu dự án Windows Service
Để điều khiển dịch vụ của bạn, SDM sử dụng bảy phương thức
protected
thừa kế từ lớp
ServiceBase
(xem bảng 17.5). Bạn cần chép đè các phương thức này để hiện thực các chức
năng và cách thức hoạt động của dịch vụ. Không phải tất cả dịch vụ đều hỗ trợ tất cả các
thông điệp điều khiển. Các thuộc tính thừa kế từ lớp
ServiceBase
sẽ báo với SCM rằng dịch
vụ của bạn hỗ trợ các thông điệp điều khiển nào; thuộc tính điều khiển mỗi kiểu thông điệp
được ghi rõ trong bảng 17.5.
Bảng 17.5 Các phương thức dùng để điều khiển sự hoạt động của một dịch vụ
Phương thức
Mô tả