Я смог использовать атрибуты, чтобы получить все, что мне нужно, хотя моя ситуация относительно проста.Например, чтобы заставить его десериализовать узлы с тире в них, а затем иметь возможность сериализации под тем же именем узла, я использовал это:
[XmlElement(ElementName = "short-name")]
[SerializeAs(Name = "short-name")]
public string shortName { get; set; }
Так что в вашем примере сериализация не учитывает[XmlElement("elementName")]
.Вместо этого вам нужно будет использовать [SerializeAs(Name = "elementName")]
.
. Я нашел это, пролистав тестовый код в проекте RestSharp.