继承属性合并到另一个

问题描述:

我有员工实体继承属性合并到另一个

public class Employee 
{ 
    public Employee(); 

    public int BossId { get; } 
    public int BossUserId { get; } 
    public string CostCentre { get; } 
    public int CostCentreId { get; } 
    public string Department { get; } 
    public int DepartmentId { get; } 
    public string Designation { get; } 
    public int DesignationId { get; } 
    public string EmailAddress { get; } 
    public int EmployeeId { get; } 
    public string FirstName { get; } 
    public string FullName { get; } 
    public string LastName { get; } 
    public string LoginId { get; } 
    public int UserId { get; } 

    public override string ToString(); 
} 

我想使用另一个实体所有这些特性,并给它们赋值。

我的另一个实体是

public class UserRoles 
{ 
    public UserRoles() 
    { 
    } 

    public int UserRoleId { get; set; } 
    public long EmpUserId { get; set; } 
    public int RoleId { get; set; } 
    public DateTime AddedOn { get; set; } 
    public long AddedBy { get; set; } 
    public long ModifiedBy { get; set; } 
    public DateTime ModifiedOnd { get; set; } 
    } 

如果我创建Employee类的属性,我不能将值分配给它。而且我无法更改Employee类,因为它在某些dll中。

有什么办法我可以重写它或继承和赋值给这些属性?

+0

继承Employee吗? '公共类UserRoles:员工'。你将拥有所有的属性,但这很奇怪 - 用户角色不是员工。顺便说一句,我不明白你为什么不能使用'员工'类型的属性 – 2013-03-12 09:18:20

+0

是的,但我不能为员工的属性赋值 – user1181942 2013-03-12 09:19:54

+0

我没有使用员工类型的属性,因为我想要UserRole的属性也 – user1181942 2013-03-12 09:21:08

您可以使用您自己的类EmployeeWrapper封装Employee类,并在EmployeeWrapper中放置使用反射来设置Employee类属性的逻辑,如Reflection without a Getter/Setter?中所述。

然后,您使用您的EmployeeWrapper并通过其构造函数传递参数或仅设置其属性,并在后面使用反射来设置实际Employee实例的属性。