2011-11-01 54 views
1

我對如何注入沒有定義源屬性的值有疑問。 所以我有2類:自定義值注入

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(); } 
    } 

我想實現這個使用值注射器。 預先感謝您

回答

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>(); 
+0

偉大的,它幫助me..thank你答案 – Rivera