某些属性不能直接在服务对象中设置。 这最常出现在功能属性的情况下;这些属性的名称中带有 Cap 前缀。 根据 Unified Point Of Service (UnifiedPOS) 规范,这些属性必须是只读的;因此,服务对象需要特定于实现的机制来更改这些属性的值。
BaseClass 属性
为此,Microsoft Point of Service for .NET (POS for .NET) 基类具有受保护的属性“属性”。 此属性返回一个帮助程序类,该类具有基类中实现的只读属性的可写版本。 例如,PinPadBase 具有一个名为 Properties 的属性,该属性返回类型 PinPadProperties 的对象。 此对象包含用于设置各种特定于 PinPad 的功能属性的属性,例如 CapDisplay。
PosCommon 属性
除了特定于设备的属性类外,所有 POS for .NET 基类和基本类还具有一个名为 CommonProperties 的受保护属性,该属性返回 CommonProperties 类型的对象。 此帮助程序类用于修改在 PosCommon 中找到的功能和状态属性。
使用帮助程序类设置属性
通常,服务对象应始终使用帮助程序类访问其通用属性和类特定的属性的值。 这些属性可由服务对象写入,并且始终包含适当的值。
服务对象开发人员应了解 POS for .NET 框架在更改特定值时可能执行的操作。 例如,服务对象通常不应更改 CommonProperties.State,因为这可能会干扰 POS for .NET 内部状态。 同样,服务对象开发人员应注意,更改 CommonProperties.PowerState 可能会向应用程序发送 StatusUpdateEvent 事件。
注意
从 POS for .NET 基类或基本类派生时,服务对象通常不应将 CommonProperties.State 的值更改为 ControlState.Closed。 这样做会阻止清理事件队列,而 POS for .NET 稍后可能会在尝试处理队列中已有的事件时引发异常。