While this (and the same logic for the constructor taking a CPVRTimerInfoTag) should work with JSON-RPC I'd prefer the way this works for video, music, epg etc i.e. CPVRRecording and CPVRTimerInfoTag implement the ISerializable interface and expose all their properties through that method which is then called by JSON-RPC to serialize the retrieved values. It prevents unnecessary cluttering of the properties map in CFileItem.