Что ж, я думаю, ошибка в том, что конвертер по умолчанию не знает формат, который вы пытаетесь отправить. Вы должны использовать формат, который он понимает, или использовать собственный конвертер, или использовать строку, а потом конвертировать ее самостоятельно. .
Если вы запустите TimeSpan.Parse("PT20H20M")
, вы получите ошибку, которая говорит, что это недопустимый формат.
Похоже, что этот вызов может получить TimeSpan
:
System.Xml.XmlConvert.ToTimeSpan("P2DT01H")
Вы можете использовать пользовательский конвертер, как описано здесь или здесь (Первый - для. net core 3).