XmlSerialize中的循环引用

时间:2011-06-01 04:54:51

标签: c# web-services mono poco circular-reference

我正在使用T4文本模板生成DTO POCO以用于我的NHibernate域模型。

这些POCO将使用ASMX Web服务发送到客户端(与Mono兼容)但如果我没有XmlIgnore List<>属性,我将遇到循环引用。< / p>

有没有办法允许创建POCO,以便循环引用仍然存在于客户端,但是当通过Web服务传递时,引用将被忽略。

也许是自定义XmlSerializer?在使用Mono时,WCF不受支持。

public partial class UserDTO
{

    public System.Guid ID
    {
        get;
        set;
    }

    public System.String Username
    {
        get;
        set;
    }

    public System.String Password
    {
        get;
        set;
    }
    [XmlIgnore]
    public List<InspectionDTO> Inspections
    {
        get;
        //internal set;
        set;
    }

    public ContactDTO Contact
    {
        get;
        set;
    }

    public OrganisationDTO Organisation
    {
        get;
        set;
    }
    [XmlIgnore]
    public List<RoleDTO> Roles
    {
        get;
        //internal set;
        set;
    }
}


public partial class ContactDTO
{

    public System.Guid ID
    {
        get;
        set;
    }

    public System.String FirstName
    {
        get;
        set;
    }

    public System.String LastName
    {
        get;
        set;
    }
    [XmlIgnore]
    public List<AddressDTO> Addresses
    {
        get;
        //internal set;
        set;
    }
    [XmlIgnore]
    public List<EmailDTO> Emails
    {
        get;
        //internal set;
        set;
    }
    [XmlIgnore]
    public List<UserDTO> Users
    {
        get;
        //internal set;
        set;
    }
    [XmlIgnore]
    public List<PhoneDTO> Phones
    {
        get;
        //internal set;
        set;
    }
}

0 个答案:

没有答案