C# 定制价值注入

C# 定制价值注入,c#,.net,asp.net-mvc-3,valueinjecter,C#,.net,Asp.net Mvc 3,Valueinjecter,我对如何在没有定义源属性的情况下注入值有疑问。 所以我有两门课: 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

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

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; }
}
如何注射蛋氨酸?我需要调用我的服务来检查数据库用户的角色。我不想让呼叫的服务得到这样的属性:

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>();
public类SetRole:NoSourceValueInjection
{
受保护的覆盖无效注入(对象目标)
{
动态t=目标;
t、 RoleName=Roles.GetRolesForUser(t.UserName.FirstOrDefault();
}
}
uvm.InjectFrom(用户)
.InjectFrom();

如果您真的想通过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>();
public类SetRole:NoSourceValueInjection
{
受保护的覆盖无效注入(对象目标)
{
动态t=目标;
t、 RoleName=Roles.GetRolesForUser(t.UserName.FirstOrDefault();
}
}
uvm.InjectFrom(用户)
.InjectFrom();