即插即用 XML 配置(POS for .NET v1.14 SDK 文档)

尽管通常应使用服务对象源代码中的 HardwareId 属性指定即插即用硬件 ID,但有时服务对象供应商可能需要更大的灵活性。 例如,需要更改硬件 ID 而不重新分发整个服务对象程序集。

为了支持这些情况,Microsoft Point of Service for .NET (POS for .NET) 在 XML 文件中指定硬件关联。 这些 XML 文件是从注册表项 HKEY_LOCAL_MACHINE/SOFTWARE/POSfor.NET/ControlConfigs 中指定的目录中读取的。 构造可用服务对象和设备的列表时,PosExplorer 处理该目录中的每个文件,并尽可能关联设备。 服务对象或应用程序不需要执行其他操作。

架构

即插即用配置文件必须以名为 PointOfServiceConfig 的顶级节点开头,并且具有属性 Version 以指示文件的 XML 版本。

之后,可能有任意数量的 ServiceObject 子节点。 每个服务对象节点必须包含 Type 和 Name 属性,以指示 POS 设备类型和服务对象的名称。 这两个字段将与可用的服务对象进行匹配,以确定哪些(如果有)应与子节点 HardwareId 中指定的设备相关联。 ServiceObject 节点上还有一个可选属性,即 Override。 如果设置了此属性,则 XML 文件中的设备关联将替代程序集中包含的关联。

ServiceObject 节点包含名为 HardwareId 的子节点,这些子节点具有 From 和 To 属性。 这些属性的内容与在服务对象程序集的 HardwareId 属性中找到的内容相同,并指定要与服务对象关联的硬件 ID 范围。

示例

该示例演示典型的 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 优先级

如果设置了 ServiceObject 节点上的 Override 属性,则 XML 中指定的设备关联优先,服务对象上的任何 HardwareId 属性都将放弃。

如果未设置 Override 属性,则 XML 和 HardwareId 都没有优先级。 相反,PosExplorer 会将所有指定设备的联合与服务对象相关联。

另请参阅

任务

概念