-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Description
Source/destination types
Src:
public class UserClaim : AuditableEntity
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int UserClaimId { get; set; }
[Required]
public int UserId { get; set; }
[Required]
[ForeignKey("ClaimType")]
public ClaimTypeEnum ClaimTypeId { get; set; }
[Required]
public ClaimType ClaimType { get; set; }
[Required]
[MaxLength(50)]
public string ClaimValue { get; set; }
}
}
public class ClaimType : AuditableEntity
{
[Key]
public ClaimTypeEnum ClaimTypeId { get; set; }
public string ClaimTypeName { get; set; }
}
Dest: System.Security.Claims.Claim
public class Claim
{
...
//
// Summary:
// Initializes a new instance of the System.Security.Claims.Claim class with the
// specified claim type, and value.
//
// Parameters:
// type:
// The claim type.
//
// value:
// The claim value.
//
// Exceptions:
// T:System.ArgumentNullException:
// type or value is null.
public Claim(string type, string value);
...
Mapping configuration
AutoMapper.Mapper.Initialize(config =>
{
config.CreateMap<UserClaim, Claim>()
.ForCtorParam("value", opt => opt.MapFrom(src => src.ClaimValue))
.ForCtorParam("type", opt => opt.MapFrom(src => src.ClaimType.ClaimTypeName));
});
Version: 8.0.0
Expected behavior
successfully map?
Actual behavior
Exception has occurred: CLR/AutoMapper.AutoMapperConfigurationException
An exception of type 'AutoMapper.AutoMapperConfigurationException' occurred in AutoMapper.dll but was not handled in user code: 'Claim does not have a constructor with a parameter named 'value'.
System.Security.Claims.Claim'
at AutoMapper.CtorParamConfigurationExpression1.Configure(TypeMap typeMap) at AutoMapper.Configuration.MappingExpression
2.Configure(TypeMap typeMap)
at AutoMapper.ProfileMap.BuildTypeMap(IConfigurationProvider configurationProvider, ITypeMapConfiguration config)
at AutoMapper.ProfileMap.Register(IConfigurationProvider configurationProvider)
at AutoMapper.MapperConfiguration.Seal()
at AutoMapper.MapperConfiguration..ctor(MapperConfigurationExpression configurationExpression)
at AutoMapper.MapperConfiguration..ctor(Action1 configure) at AutoMapper.Mapper.Initialize(Action
1 config)
at Wellspring.Eqp.Api.Startup.SetUpAutoMapper() in /home/brian/clients/walsh/eqp-api/src/Wellspring.Eqp.Api/Startup.cs:line 362
at Wellspring.Eqp.Api.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger`1 logger) in /home/brian/clients/walsh/eqp-api/src/Wellspring.Eqp.Api/Startup.cs:line 241
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.AspNetCore.Hosting.Internal.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
at Microsoft.AspNetCore.Hosting.Internal.ConfigureBuilder.<>c__DisplayClass4_0.b__0(IApplicationBuilder builder)
at Microsoft.AspNetCore.Hosting.Internal.GenericWebHostBuilder.<>c__DisplayClass13_0.b__2(IApplicationBuilder app)
at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)
at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.b__0(IApplicationBuilder app)
at Microsoft.AspNetCore.Hosting.Internal.GenericWebHostService.d__31.MoveNext()