Индивидуальная инжекция значений

66
9

У меня вопрос о том, как вводить значение без определенного свойства источника. поэтому у меня есть 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; }
}

как ввести значение RoleName? Мне нужно вызвать мою услугу, чтобы проверить в базе данных, какую роль пользователя. и я не хочу, чтобы вызванный сервис получил свойство вроде этого:

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

Я хочу достичь этого с помощью инъектора ценности. заранее спасибо

спросил(а) 2021-01-19T20:23:56+03:00 9 месяцев, 1 неделя назад
1
Решение
65

если вы действительно хотите сделать это с помощью 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>();

ответил(а) 2021-01-19T20:23:56+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема