尽管通常应使用 HardwareId 服务对象源代码中的属性指定即插即用硬件 ID,但有时服务对象供应商需要更大的灵活性。 例如,需要更改硬件 ID,而无需重新分发整个服务对象程序集。
为了支持这些情况,Microsoft .NET 服务点(POS for .NET)在 XML 文件中指定硬件关联。 这些 XML 文件是从注册表项 HKEY_LOCAL_MACHINE/SOFTWARE/POSfor.NET/ControlConfigs 中指定的目录读取的。 构造可用的服务对象和设备列表时,PosExplorer 会处理该目录中的每个文件,并尽量与设备进行关联。 服务对象或应用程序无需执行任何其他作。
Schema
即插即用配置文件必须以名为 PointOfServiceConfig 的顶级节点开头,并且具有属性 版本 来指示文件的 XML 版本。
之后,可能会有任意数量的 ServiceObject 子节点。 每个服务对象节点必须包含 Type 和 Name 属性,以指示服务对象的 POS 设备类型和名称。 这两个字段将与可用的服务对象匹配,以确定应将哪些字段与子节点 HardwareId 中指定的设备相关联。
ServiceObject 节点上还有一个可选属性。 Override 如果设置了此属性,则 XML 文件中的设备关联将替代程序集中包含的关联。
ServiceObject 节点包含名为 HardwareId 的子节点,其中包含具有From和To属性的子节点。 这些属性的内容与服务对象程序集的 HardwareId 属性中的内容相同,并指定要与服务对象关联的硬件 ID 范围。
Example
该示例演示典型的 XML 即插即用配置文件。
<PointOfServiceConfig Version="1.0">
<ServiceObject Type="Msr" Name="ExampleMsr" Override="yes">
<HardwareId From="HID\Vid_0801&Pid_0002&Rev_0100"
To="HID\Vid_0801&Pid_0002&Rev_9999" />
</ServiceObject>
</PointOfServiceConfig>
硬件 ID 优先级
Override
ServiceObject 节点的 Override 属性被设置时,XML 中指定的设备关联将优先于其他配置,并且 ServiceObject 节点的 HardwareId 属性将被忽略。
如果未设置该 Override 属性,则 XML 和 HardwareId 都没有优先级。
PosExplorer 将所有指定设备的集合与服务对象关联起来。