【问题标题】:Render Properties as XMLAttributes in ASP.NET Web API response在 ASP.NET Web API 响应中将属性呈现为 XMLAttributes
【发布时间】:2013-01-11 17:24:37
【问题描述】:

以下是代表 ASP.NET Web API 服务调用响应的类。

public class User
{
   public string FirstName {get;set;}

   public long FirstNameLastModified {get;set;}

   public string LastName {get;set;}

   public long LastNameLastModified {get;set;}

}

由于与此问题无关的原因,我目前是 XmlSerializer 而不是默认的 DataContractSerializer。

这里呈现的响应是表单。

最后修改的值是时间戳,与字段相关。

<User>
  <FirstName>Phill<FirstName>
  <FirstNameLastModified>12<FirstNameLastModified>
  <LastName>Haack<LastName>
  <LastNameLastModified>16<LastNameLastModified>
</User>

我希望将 XML 呈现为

<User>
  <FirstName lastModified="12">Phill<FirstName>
  <LastName lastModified="16">Haack<LastName>
</User>

我应该怎么做?

【问题讨论】:

    标签: c# xml-serialization asp.net-web-api xmlserializer


    【解决方案1】:
    public class Foo<T>
    {
        [XmlText]
        public T Value;
        [XmlAttribute]
        public int LastModified;
    }
    
    public class User
    {
        public Foo<string> FirstName;
        public Foo<string> LastName;
    }
    

    【讨论】:

      【解决方案2】:

      类似这样的:

      public class User
      {
          [XmlElement("FirstName")]
          public Name FirstName { get; set; }
      
          [XmlElement("LastName")]
          public Name LastName { get; set; }
      
      }
      
      public class Name
      {
          [XmlText]
          public string Name { get; set; }
      
          [XmlAttribute("lastModified")]
          public long Modified { get; set; }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多