[英]Returning List<T> with WCF service
我有一個Employee
類,每個員工都有一個應用的葉子列表。 是否可以將列表AppliedLeave
作為WCF中的[DataMember]
?
[DataContract]
public class Employee
{
[DataMember]
public string UserID { get; set; }
[DataMember]
public int EmployeeNumber { get; set; }
[ForeignKey("EmployeeUserID")]
[DataMember]
public List<Leave> AppliedLeave
{
get { return _appliedLeaves; }
set { _appliedLeaves = value; }
}
private List<Leave> _appliedLeaves = new List<Leave>();
...
}
有沒有其他方法可以做到這一點?
感謝您對此事的考慮
我延伸我的問題
這是我的休假班:
[DataContract]
public class Leave
{
[Key()]
[DataMember]
public Guid LeaveId { get; set; }
[DataMember]
public string LeaveType { get; set; }
[DataMember]
public DateTime StartDate { get; set; }
[DataMember]
public string EmployeeUserID { get; set; }
}
這顯示了ServiceContract ---->
[ServiceContract]
public interface IEmployeeService
{
[OperationContract]
Employee GetEmployeeByUserId(string userId);
[OperationContract]
void AssignSupervisor(string userId, string supervisorUserId);
[OperationContract]
void DeleteEmployeeByUserId(string userId);
....
}
在客戶端應用中,
EmployeeServiceClient employeeService = new EmployeeServiceClient();
員工employee = employeeService.GetEmployeeByUserId(id);
但是,當員工從服務中收集時,它會顯示Null for leaves,
有人能幫助我嗎? 我在這做錯了什么?
是的,可以從WCF服務操作返回泛型。
但默認情況下,它們會在客戶端轉換為Array。 這可以在代理生成時自定義。
此外,您還必須使用KnownTypeAttribute使用可以解析泛型的所有類型來裝飾服務。
您可以使用IList<T>
而不是List<T>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.