【问题标题】:Serializing objects in a list with RestSharp使用 RestSharp 序列化列表中的对象
【发布时间】:2013-03-05 14:52:17
【问题描述】:

我在使用 RestSharp 将我的 POCO 对象序列化为 XML 时遇到问题。我的 POCO 对象如下所示:

人物

[SerializeAs(Name = "person")]
public class Person
{
    [SerializeAs(Name = "author-id")]
    public int? AuthorId { get; set; }

    [SerializeAs(Name = "background")]
    public string Background { get; set; }

    [SerializeAs(Name = "first-name")]
    public string FirstName { get; set; }

    [SerializeAs(Name = "last-name")]
    public string LastName { get; set; }

    [SerializeAs(Name = "id")]
    public int? Id { get; set; }

    [SerializeAs(Name = "company-name")]
    public string CompanyName { get; set; }

    [SerializeAs(Name = "title")]
    public string Title { get; set; }

    [SerializeAs(Name = "contact-data")]
    public ContactData ContactData { get; set; }

    [SerializeAs(Name = "tags")]
    public List<tag> Tags { get; set; }
}

联系人数据

public class ContactData
{
    [SerializeAs(Name = "addresses")]
    public List<object> Addresses { get; set; }

    [SerializeAs(Name = "phone-numbers")]
    public List<object> PhoneNumbers { get; set; }

    [SerializeAs(Name = "email-adresses")]
    public List<object> EmailAddresses { get; set; }

    [SerializeAs(Name = "web-addresses")]
    public List<object> WebAddresses { get; set; }
}

电子邮件地址

[SerializeAs(Name = "email-address")]
public class EmailAddress
{
    [SerializeAs(Name = "address")]
    public string Address { get; set; }

    [SerializeAs(Name = "id")]
    public int? Id { get; set; }

    [SerializeAs(Name = "location")]
    public string Location { get; set; }
}

这在序列化时给了我以下 XML:

<person>
    <first-name>my firstname</first-name> 
    <contact-data>
        <email-adresses>
            <EmailAddress>
                <address>my@email.com</address> 
                <location>Work</location> 
             </EmailAddress>
        </email-adresses>
    </contact-data>
    <tags>
        <tag>
            <name>Nyhedsbrev</name> 
        </tag>
    </tags>
</person>

您可能会注意到,电子邮件地址SerializeAs 被忽略。我认为这可能是因为它在List 中,因为Person 对象被正确序列化为&lt;person&gt;

我需要使用注释而不是类名本身来序列化 List(或某个集合)中的 POCO 对象。

有没有人找到解决方法?

【问题讨论】:

  • 你有没有想过这个问题?我也有同样的问题。

标签: c# xml-serialization poco restsharp


【解决方案1】:

将此追溯到 RestSharp 中的一个错误。我分叉了 Git 存储库,修复了它并提交了 pull request

【讨论】:

    猜你喜欢
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多