ValueInjecter разные типы / имена свойств
Можно ли ввести что-то вроде этого:
public class DomainEntity
{
public Resource DescriptionResource { get; set; }
}
public class Resource
{
public List<ResourceLocalization> Localizations { get; set; }
}
public class ResourceLocalization
{
public string Culture { get; set; }
public string Value { get; set; }
}
что-то вроде этого:
public class DomainEntityViewModel
{
public string Description { get; set; }
}
(DomainEntity.DescriptionResource.Localizations.First (). Value => DomainEntityViewModel.Description)
используя ValueInjecter.
Благодарю вас!
1 ответ
Решение
Вы можете использовать эту инъекцию:
public class MyInj : ConventionInjection
{
protected override bool Match(ConventionInfo c)
{
return c.TargetProp.Name == c.SourceProp.Name
&& c.TargetProp.Type == typeof (string)
&& c.SourceProp.Type == typeof (List<ResourceLocalization>);
}
protected override object SetValue(ConventionInfo c)
{
return ((List<ResourceLocalization>) c.SourceProp.Value).First().Value;
}
}