public HttpResponseMessage Save(IList<Models.Activity> activities)
{
//some controller code
return Request.CreateResponse(HttpStatusCode.Created, activities, Configuration);
}
Run Code Online (Sandbox Code Playgroud)
如何对活动正确传递给Request.CreateResponse进行单元测试?
背景:我希望在DTO映射到实体时挂钩业务规则.我认为将映射封装到扩展方法将是一个很好的途径.
IEntityDto是可以直接映射到实体的所有DTO实现的接口.
单个实例工作正常:
public static TEntity MapTo<TEntity>(this IEntityDto dto)
{
... Run Business Rules that don't require db access ...
return AutoMapper.Mapper.Map<TEntity>(dto);
}
Run Code Online (Sandbox Code Playgroud)
我也想以同样的方式扩展ICollection:
public static ICollection<TEntity> MapToCollection<TEntity>(this ICollection<IEntityDto> dtos)
{
... Run Business Rules that don't require db access ...
return AutoMapper.Mapper.Map<ICollection<TEntity>>(dtos);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,MapToCollection没有显示在上下文菜单上,也不会在应用于IEntlection的ICollection时进行编译.
为了让这个工作,我错过了什么?我是否需要扩展ICollection,其中T是IEntityDto?在调用扩展方法时,我宁愿不必包含DTO类型.
public static ICollection<TEntity>MapToCollection<TDto,TEntity>(this ICollection<TDto> dtos) where TDto: IEntityDto
{
... Do Work and Return ...
}
Run Code Online (Sandbox Code Playgroud)
上面的工作,但我希望从集合推断T.
谢谢!