我有一个 Employee 类(class),每个员工都有一个已申请的假期列表。是否可以将列表 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>();
    ...
 }
有没有其他方法可以做到这一点?
感谢您对此事的考虑
我扩展了我的问题
这是我的休假类:
[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);

....
}
在客户端应用程序中,

但是当 Employee 从服务中收集时,它的叶子显示为 Null,

有人可以帮助我吗?我在这里做错了什么?

最佳答案

是的,可以从 WCF 服务操作返回泛型。

但默认情况下,它们在客户端被强制转换为 Array。这可以在代理生成时自定义。

WCF: Serialization and Generics

此外,您必须使用KnownTypeAttribute 使用泛型可以解析为的所有类型来装饰服务。

Known Types and the Generic Resolver

关于c# - 使用 WCF 服务返回 List<T>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10646978/

10-12 04:02
查看更多