继承属性合并到另一个
问题描述:
我有员工实体继承属性合并到另一个
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中。
有什么办法我可以重写它或继承和赋值给这些属性?
答
您可以使用您自己的类EmployeeWrapper封装Employee类,并在EmployeeWrapper中放置使用反射来设置Employee类属性的逻辑,如Reflection without a Getter/Setter?中所述。
然后,您使用您的EmployeeWrapper并通过其构造函数传递参数或仅设置其属性,并在后面使用反射来设置实际Employee实例的属性。
继承Employee吗? '公共类UserRoles:员工'。你将拥有所有的属性,但这很奇怪 - 用户角色不是员工。顺便说一句,我不明白你为什么不能使用'员工'类型的属性 – 2013-03-12 09:18:20
是的,但我不能为员工的属性赋值 – user1181942 2013-03-12 09:19:54
我没有使用员工类型的属性,因为我想要UserRole的属性也 – user1181942 2013-03-12 09:21:08