我是Web服务的新手,需要创建一个可以处理对象图的Web服务。我的规范示例是CRM Web服务,如果客户编号将返回类型为Company的“对象”,其集合属性为Contacts。
即:
[WebService]
public Company GetCompanyByCustomerNumber( string customerNumber ) {...}
将返回以下实例:
public class Company
{
....
public List<Contact> Contacts { get { ... } }
}
能够创建Web服务以便可以从Visual Studio中轻松使用它以便它可以直接与公司和相关联系人一起工作,这真的很棒......
这可能吗?
由于 弗雷德里克
答案 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