自定义值注入
本文关键字:注入 自定义 | 更新日期: 2023-09-27 18:13:01
我有关于如何在没有定义源属性的情况下注入值的问题。所以我有两个class:
User.cs
public class User
{
public int UserId { get; set; }
public string UserName { get; set; }
}
和UserViewModel.cs
public class UserViewModel
{
public int UserId { get; set; }
public string UserName { get; set; }
public string RoleName { get; set; }
}
如何注入RoleName?我需要调用我的服务来检查数据库中用户的角色。我不希望在get属性中调用服务,像这样:
public string RoleName
{
get { return Roles.GetRolesForUser(UserName).FirstOrDefault(); }
}
我想使用值注入器来实现这一点。提前谢谢大家
如果你真的真的想用valueinjection来做这个你可以这样做:
public class SetRole : NoSourceValueInjection
{
protected override void Inject(object target)
{
dynamic t = target;
t.RoleName = Roles.GetRolesForUser(t.UserName).FirstOrDefault();
}
}
uvm.InjectFrom(user)
.InjectFrom<SetRole>();