对象图和Web服务

时间:2010-02-03 13:37:41

标签: c# web-services object-graph

我是Web服务的新手,需要创建一个可以处理对象图的Web服务。我的规范示例是CRM Web服务,如果客户编号将返回类型为Company的“对象”,其集合属性为Contacts。

即:

[WebService]
public Company GetCompanyByCustomerNumber( string customerNumber ) {...}

将返回以下实例:

public class Company
{
....
  public List<Contact> Contacts { get { ... } }
}

能够创建Web服务以便可以从Visual Studio中轻松使用它以便它可以直接与公司和相关联系人一起工作,这真的很棒......

这可能吗?

由于 弗雷德里克

2 个答案:

答案 0 :(得分:2)

使用Windows Communication Foundation(WCF)最好不要使用ASMX Web服务。有了它,您可以使用以下属性定义数据合同

[DataContract]
public class Company
{
    [DataMember]
    public Contact[] Contacts { get; set; }
}

答案 1 :(得分:1)

似乎.NET Framework 3.5 SP1中的修复程序添加了对DataContract上的IsReference属性的支持正是我所需要的!

所以我可以写:

[DataContract(IsReference=true)]
public class Contact
{
    Company parentCompany;
    [DataMember]
    public Company ParentCompany
    {
        get { return parentCompany; }
        set { parentCompany = value; }
    }

    string fullName;
    [DataMember]
    public string FullName
    {
        get { return fullName; }
        set { fullName = value; }
    }
}

[DataContract(IsReference = true)]
public class Company
{
    string name;
    [DataMember]
    public string Name
    {
        get { return name; }
        set { name = value; }
    }

    List<Contact> contacts = new List<Contact>();
    [DataMember]
    public List<Contact> Contacts
    {
        get { return contacts; }
    }
}

感谢所有帮助我的正确方向!

// Fredrik