Похоже, что публикация (HTTP POST) JSON со свойством, содержащим XML-фрагмент, не будет правильно сериализоваться, если это свойство является XElement в моем классе. Вот пример:Deserialized xml дает null XElement
public class MYController : ApiController
{
public MyClass Post(MyClass postedObject)
{
return postedObject;
}
}
public class MyClass
{
public DateTime MyDate { get; set; }
public XElement MyXml{ get; set; }
}
Отправленное Javascript объект:
{
"MyDate" : "2012-12-01T12:00:00",
"MyXml" : "<node ln=\"node\" nm=\"1\" /><node ln=\"node\" nm=\"2\" />"
}
Для причине XElement всегда пустой, но DateTime в порядке.
MyXml содержит атрибуты не элементы. Имя тега является «узлом», поэтому объект класса следует называть «узлом» или добавить: [XmlElement («node»)] – jdweng
Какой сериализатор JSON вы используете? Я бы сомневался, что он поддерживает сериализацию в/из 'XElement'. Если вы используете JSON.NET, вы можете попробовать внедрить ['JsonConverter'] (http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonConverter.htm). Альтернативно, измените свойство на 'string' и проанализируйте его после десериализации. –