1

我对如何在未定义源属性的情况下注入值有疑问。所以我有 2 节课:

用户.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?我需要调用我的服务来检查数据库用户的角色。而且我不希望在获取财产中调用的服务是这样的:

public string RoleName
    {
        get { return Roles.GetRolesForUser(UserName).FirstOrDefault(); }
    }

我想使用价值注入器来实现这一点。先感谢您

4

1 回答 1

1

如果你真的想通过 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>();
于 2011-11-01T16:03:18.033 回答