我上了一堂Employee课,每个员工都有一份申请表.是否可以将列表AppliedLeave作为[DataMember]WCF中的列表?
[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>();
...
}
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以做到这一点?
感谢您对此事的考虑
我延伸我的问题
这是我的休假班:
[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; }
}
Run Code Online (Sandbox Code Playgroud)
这显示了ServiceContract ---->
[ServiceContract]
public interface IEmployeeService
{
[OperationContract]
Employee GetEmployeeByUserId(string userId);
[OperationContract]
void AssignSupervisor(string userId, string supervisorUserId);
[OperationContract]
void DeleteEmployeeByUserId(string userId);
....
}
Run Code Online (Sandbox Code Playgroud)
在客户端应用中,
EmployeeServiceClient employeeService = new EmployeeServiceClient();
员工employee = employeeService.GetEmployeeByUserId(id);
但是,当员工从服务中收集时,它会显示Null for leaves,

有人能帮助我吗?我在这做错了什么?
是的,可以从WCF服务操作返回泛型.
但默认情况下,它们会在客户端转换为Array.这可以在代理生成时自定义.
此外,您还必须使用KnownTypeAttribute使用可以解析泛型的所有类型来装饰服务.