Microsoft Point of Service for .NET(POS for .NET)包含對即插即用裝置的支援。 透過在服務物件中加入即插即用支援,應用程式可以變得更簡單、可靠且高效。 服務物件應盡可能支援此功能。
在服務物件層級實作即插即用支援非常簡單。 一旦你知道裝置的硬體 ID,只要在類別中加入一個屬性即可。 HardwareIdAttribute
HardwareId屬性用於PosExplorer根據裝置狀態,智慧地從可用裝置列表中過濾出服務物件。 若服務物件的 HardwareId 屬性指向已安裝的即插即用裝置,但該裝置未連接,該服務物件將被排除在 PosExplorer 裝置清單之外。 當應用程式呼叫 時,此清單會回傳 GetDevices()。
服務物件也可能有多個 HardwareId 屬性,此時 PosExplorer 會將所有指定裝置的聯集與服務物件關聯。 可以覆寫 HardwareId 屬性或新增至服務物件上的相關硬體清單,而無需重新建置服務物件组件。 關於覆寫或新增屬性的 HardwareId 資訊,請參閱 即插即用 XML 設定。
應用程式負責捕捉 DeviceAddedEvent 和 DeviceRemovedEvent 事件,並根據從 PosExplorer 回傳的裝置清單適時更新其狀態。 服務物件不需要偵測這些事件。
要為你的服務物件類別新增 HardwareID 屬性
確定您的服務物件所支援的裝置或裝置的硬體 ID 範圍。
在類別定義之前,添加一個
HardwareId屬性,並使用您的設備上使用的最低和最高硬體 ID。HardwareId多種屬性可用來識別多個硬體識別碼範圍。
Example
以下範例為前一節所示的基本範本新增屬性 HardwareId 。
using System;
using Microsoft.PointOfService;
using Microsoft.PointOfService.BaseServiceObjects;
namespace SOTemplate
{
[HardwareId("HID\\Vid_05e0&Pid_038a",
"HID\\Vid_05e0&Pid_038a")]
[ServiceObject(
DeviceType.Msr,
"ServiceObjectTemplate",
"Bare bones Service Object class",
1,
9)]
public class MyServiceObject : MsrBase
{
public MyServiceObject()
{
}
}
}