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 を注入する方法は? ユーザーの役割をデータベースに確認するには、サービスを呼び出す必要があります。そして、私は次のように get プロパティで呼び出されるサービスを望んでいません:

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

値インジェクターを使用してこれを実現したいと考えています。前もって感謝します

4

1 に答える 1

1

値注入で本当にこれを行いたい場合は、次のようにすることができます。

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 に答える