ASP.NET Web API XmlFormatter SetSerializer

时间:2014-08-11 12:48:46

标签: asp.net-web-api asp.net-web-api2 xmlserializer

我为DateTime配置了自定义XmlSerializer -

        GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true;
        GlobalConfiguration.Configuration.Formatters.XmlFormatter.Indent = true;
        GlobalConfiguration.Configuration.Formatters.XmlFormatter.SetSerializer<DateTime>(new myDateTimeSerializer());

自定义myDateTimeSeriazlier -

public class myDateTimeSerializer : System.Xml.Serialization.XmlSerializer
    {
        public myDateTimeSerializer()
            : base()
        {
        }

        public override bool CanDeserialize(System.Xml.XmlReader xmlReader)
        {
            return base.CanDeserialize(xmlReader);
        }
        protected override object Deserialize(System.Xml.Serialization.XmlSerializationReader reader)
        {
            return base.Deserialize(reader);
        }
        protected override void Serialize(object o, System.Xml.Serialization.XmlSerializationWriter writer)
        {
            base.Serialize(o, writer);
        }
    }

如果我在调试模式中将所有上述方法中的断点放在一起,它就不会被击中。 我在这里错过了什么吗?

感谢。

1 个答案:

答案 0 :(得分:1)

无法替换基本类型序列化。您必须使用其他属性作为字符串,格式为get中的字符串。您只能为自己的对象类型注册xmlserializer。