我知道有很多关于此的问题(和答案),但是当使用 .net6 和 automapper 11.01.1 时,这些问题都不适合我。他们似乎已经删除了其中的许多Ignore,IgnoreAllUnmapped并且ForAllOtherMembers在最新的 automapper 中。如果我使用ignore with ForAllMembers(before或after ForMember),它将忽略所有字段,甚至是我用地图指定的字段。
问题:我有两个具有相同名称字段的类,但我只想映射一些并忽略其余的。(请不要说“为什么需要自动映射器”,这不是这里的问题)。
在这种情况下我需要使用自动映射器,但不确定他们是否不再支持这个?我可能错过了一个nuget吗?我只使用“AutoMapper 11.01.1”
public class User1
{
public string Name { get; set; } = "Foo";
public int Age { get; set; } = 7;
public string Phone { get; set;} = "123456789";
}
public class User2
{
public string FirstLastName { get; set; }
public int Age { get; set; }
public string Phone { get; set; } …Run Code Online (Sandbox Code Playgroud) 我希望 .net core System.Text.Json 在转义字符进行序列化时忽略单引号字符,但我无法让它工作:
var encoderSettings = new TextEncoderSettings();
encoderSettings.AllowRange(UnicodeRanges.BasicLatin);
encoderSettings.AllowCharacters('\u0027');
var options = new JsonSerializerOptions{
Encoder = JavaScriptEncoder.Create(encoderSettings)
};
System.Text.Json.JsonSerializer.Serialize(new { text = "abc 'zorro' 123" }, options);
Run Code Online (Sandbox Code Playgroud)
这将产生一个字符串:
{"text":"abc \u0027zorro\u0027 123"}
当我希望它是
{"text":"abc 'zorro' 123"}
这里有什么想法吗?只是不想转义单引号。我也尝试过将 替换\u0027为\'.
如果我这样做 - 它有效:
options = new JsonSerializerOptions
{
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
};
jsonString = JsonSerializer.Serialize(new { text = "abc 'zorro' 123" }, options);
Run Code Online (Sandbox Code Playgroud)
...但这也会禁用所有字符的转义,包括<,>和&(仅 JSON 标准要求转义的字符除外),我也不想要这些字符。