在使用 AutoMapper 之后,我在这个网站上遇到了ValueInjecter 。我正在尝试,但我被困在一个可能非常简单的场景上。
但是在我深入研究代码示例之前,有谁知道 ValueInjecter 是否可以在中等信任的 Web 环境中工作?(像Godaddy?)
好的,进入代码!我有以下型号:
public class NameComponent
{
public string First { get; set; }
public string Last { get; set; }
public string MiddleInitial { get; set; }
}
public class Person
{
public NameComponent Name { get; set; }
}
我想映射到以下 DTO:
public class PersonDTO : BaseDTO
{
private string _firstName;
public string FirstName
{
get { return _firstName; }
set { NotifyPropertyChanged(() => FirstName, ref _firstName, value); }
}
private string _middleInitial;
public string MiddleInitial
{
get { return _middleInitial; }
set { NotifyPropertyChanged(() => MiddleInitial, ref _middleInitial, value); }
}
private string _lastName;
public string LastName
{
get { return _lastName; }
set { NotifyPropertyChanged(() => LastName, ref _lastName, value); }
}
}
因此,当我想从 Model 映射到 DTO 时,我需要 Model.Name.First -> DTO.FirstName,而从 DTO 到 Model 时,我需要 FirstName -> Name.First。据我了解,这不是一个简单的 Flatten/UnFlatten,因为这些词也会自行反转,即:FirstName <--> Name.First。所以名字和姓氏可以使用相同的规则,但是 MiddleInitial 呢?Model.Name.MiddleInitial -> DTO.MiddleInitial。
我看到有一些插件,但它们似乎都没有做我想要的。有没有其他人遇到过这种情况?