хорошо, с ValueInjecter вы можете сделать
bar.InjectFrom(foo);
, и ваш бар будет:
{PropA = "", ProbB = "Foo"},
точно так же, как Foo, но если вы хотите взять только неНулевые / пустые значения, чтобы получить
{PropA = "Foo", PropbB = "Bar"}
, вы можете создать новую Инъекцию
public class NonNullEmptyInj : ConventionInjection
{
protected override bool Match(ConventionInfo c)
{
if (c.SourceProp.Name != c.TargetProp.Name
|| c.SourceProp.Type != c.TargetProp.Type) return false;
if(c.SourceProp.Value == null) return false;
if (c.SourceProp.Type == typeof(string) && c.SourceProp.Value.ToString() == string.Empty) return false;
return true;
}
}
и использовать ее так:
bar.InjectFrom<NonNullEmptyInj>(foo);