规范模式可用于组合对象,如下例所示:
IUser user =
UserSpecification
.ForPerson()
.WithName("myname")
.WithSurname("mysurname")
.WithPrimaryContact(ContactSpecification.ForEmailAddress("abc@email.com"))
.AndNoMoreContacts()
.Build();
这导致手动将数据从DTO映射到规范对象。 有没有办法,我们可以使用automapper来填充对象,同时使用规范模式? Automapper是否以任何方式支持此功能?
由于
答案 0 :(得分:1)
我不这么认为,通常规范模式用于零碎设置各个属性。模式的实现涉及实际设置属性的每个方法,手动。
AutoMapper始终从一个对象映射,在上面,我没有看到源对象,只是一个规范。如果规范填充了一个对象,那么该对象被映射到目标,那么它将起作用。上面“Build()”的结果可以映射到“IUser”。
否则,它没有多大意义。规范模式中的代码是设置一个对象,并尝试将其映射到AutoMapper配置,我认为这将比它的价值更麻烦/混乱。