support TextMarshaler/TextUnmarshaler.