我有员工实体
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 :(得分:1)
您可以使用自己的类EmployeeWrapper封装Employee类,并在EmployeeWrapper中使用反射设置逻辑,以设置Employee类的属性,如Reflection without a Getter/Setter?中所述。
然后您使用EmployeeWrapper并通过其构造函数传递参数,或者仅设置其属性,并在后面使用反射来设置实际Employee实例的属性。