Utility class used to set NMS properties via introspection for IMessage derived instances. This class allows IMessage classes to define Message specific properties that can be accessed using the standard property get / set semantics. This is especially useful for NMSX type properties which can vary by provider and are obtianed via a call to IConnectionMetaData.NMSXPropertyNames. The client can set the properties on an IMessage instance without a direct cast to the providers specific Message types. Properties accessed in this way are treated as NMS Message headers which are never read-only therefore there is no exception thrown if the message itself is in the read-only property mode.