Microsoft Point of Service for .NET (POS for .NET) 包括对即插即用设备的支持。 通过向服务对象添加即插即用支持,应用程序可以变得更加简单、可靠和高效。 服务对象应尽可能为其提供支持。
在服务对象级别实现即插即用支持非常简单。 知道设备的硬件 ID 后,只需将单个属性添加到类 HardwareIdAttribute。 PosExplorer 使用 HardwareId 属性根据设备状态从可用设备列表中智能筛选出服务对象。 如果服务对象具有引用已安装即插即用设备的 HardwareId 属性,但该设备未连接,则服务对象将从 PosExplorer 设备列表中排除。 当应用程序调用 GetDevices() 时,将返回此列表。
服务对象可能还具有多个 HardwareId 属性,在这种情况下,PosExplorer 会将所有指定设备的联合与服务对象相关联。 可以在不重新生成服务对象程序集的情况下替代 HardwareId 属性或添加到服务对象上的关联硬件列表。 有关替代或添加 HardwareId 属性的信息,请参阅即插即用 XML 配置。
只有应用程序负责捕获 DeviceAddedEvent 和 DeviceRemovedEvent 事件,并基于 PosExplorer 返回的更新设备列表按需更新其状态。 服务对象无需检测这些事件。
将 HardwareId 属性添加到服务对象类
确定服务对象支持的一个或多个设备的硬件 ID 范围。
使用设备使用的最低硬件 ID 和最高硬件 ID 在类定义之前添加 HardwareId 属性。 可使用多个 HardwareId 属性识别多个硬件 ID 范围。
示例
以下示例将 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()
{
}
}
}