我想通過WebApi方法將XML反序列化爲對象。允許.NET WebApi忽略DOCTYPE聲明
我有下面的類:
[XmlRoot(IsNullable = false)]
public class MyObject
{
[XmlElement("Name")]
public string Name {get;set;}
}
並在控制器的WebAPI下面的方法。
[HttpPost]
public HttpResponseMessage UpdateMyObject(MyObject model)
{
//do something with the model
}
我現在用的是XmlSerializer
通過設置Web項目的啓動如下:
config.Formatters.XmlFormatter.UseXmlSerializer = true;
發帖時下面的XML中,model
正確反序列化,我可以讀屬性的。
<?xml version="1.0" encoding="UTF-8"?>
<MyObject>
<Name>HelloWorld</Name>
</MyObject>
然而,當我發佈的XML與DOCTYPE聲明,該model
值是空的,看似不上法進入反序列化。即此XML不反序列化爲模型:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MyObject SYSTEM "http://example.com/MyObject.dtd">
<MyObject>
<Name>HelloWorld</Name>
</MyObject>
希望有人能夠提供幫助。
我一直在尋找解決方案,網上說避免了需要替換默認XmlFormatter,但我找不到任何解決方案,除了上述工作。這工作完全謝謝你的解決方案。 – 2017-01-05 21:15:23