Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AutoMapper IValueResolver抛出错误类型不能用作类型参数';TValueResolver';在泛型类型或方法中_C#_Automapper_Automapper 5 - Fatal编程技术网

C# AutoMapper IValueResolver抛出错误类型不能用作类型参数';TValueResolver';在泛型类型或方法中

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

我尝试在新版本的AutoMapper中实现IValueResolver接口。 我实现了ResourceTypeResolver类,如下所示

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,删除你的接口定义