C# AutoMapper IValueResolver抛出错误类型不能用作类型参数';TValueResolver';在泛型类型或方法中
我尝试在新版本的AutoMapper中实现IValueResolver接口。 我实现了ResourceTypeResolver类,如下所示C# AutoMapper IValueResolver抛出错误类型不能用作类型参数';TValueResolver';在泛型类型或方法中,c#,automapper,automapper-5,C#,Automapper,Automapper 5,我尝试在新版本的AutoMapper中实现IValueResolver接口。 我实现了ResourceTypeResolver类,如下所示 public interface IValueResolver<in TSource, in TDestination, TDestMember> { TDestMember Resolve(TSource source, TDestination destination, TDestMember destMember, Resoluti
public interface IValueResolver<in TSource, in TDestination, TDestMember>
{
TDestMember Resolve(TSource source, TDestination destination, TDestMember destMember, ResolutionContext context);
}
public class ResourceTypeResolver : IValueResolver<PMEasy.Model.Entity.Resource, PMEasy.Web.Models.Gantt.GanttResource, string>
{
private ILookupService LookupService;
public ResourceTypeResolver(ILookupService lookupService)
{
LookupService = lookupService;
}
public string Resolve(PMEasy.Model.Entity.Resource source, PMEasy.Web.Models.Gantt.GanttResource destination, string member, ResolutionContext context)
{
if (source.Type.HasValue && source.Type != Guid.Empty)
{
var resourceType = LookupService.GetLookupListByName("ResourceType").Where(con => con.GUID == source.Type.Value).FirstOrDefault();
return resourceType != null ? resourceType.Value : string.Empty;
}
else return "Work";
}
}
公共接口IValueResolver
{
TDestMember解析(TSource-source、TDestination-destination、TDestMember-destMember、ResolutionContext-context上下文);
}
公共类ResourceTypeResolver:IValueResolver
{
私有ILookupService LookupService;
公共资源类型解析程序(ILookupService lookupService)
{
LookupService=LookupService;
}
公共字符串解析(PMEasy.Model.Entity.Resource源、PMEasy.Web.Models.Gantt.gantresource目标、字符串成员、解析上下文)
{
if(source.Type.HasValue&&source.Type!=Guid.Empty)
{
var resourceType=LookupService.GetLookupListByName(“resourceType”).Where(con=>con.GUID==source.Type.Value).FirstOrDefault();
返回resourceType!=null?resourceType。值:string.Empty;
}
否则返回“工作”;
}
}
在映射器配置中使用这个ResourceTypeResolver之后
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Resource, GanttResource>()
.ForMember(dst => dst.TypeName, opt => opt.ResolveUsing<ResourceTypeResolver>()));
}
var config=new-MapperConfiguration(cfg=>
{
cfg.CreateMap()
.ForMember(dst=>dst.TypeName,opt=>opt.resolvesusing());
}
这里我在使用上下文时遇到一个错误
错误19类型“PMEasy.Web.AutoMapper.ResourceTypeResolver”不能用作泛型类型或方法“AutoMapper.imemberConfiguration Expression.ResolveUsing()”中的类型参数“TValueResolver”。没有从“PMEasy.Web.AutoMapper.ResourceTypeResolver”到“AutoMapper.IValueResolver”的隐式引用转换。D:\PMEasy\Development\PMEasyDev\PMEasy.Web\App\u Start\AutoMapperConfig.cs 58 59 PMEasy.Web
有什么办法可以解决这个问题吗?看起来,您创建了自己的界面
IValueResolver
,而不是使用automapper的界面。Soo,删除你的接口定义