小编ste*_*teb的帖子

自动映射器“映射一些并忽略其余的”

我知道有很多关于此的问题(和答案),但是当使用 .net6 和 automapper 11.01.1 时,这些问题都不适合我。他们似​​乎已经删除了其中的许多IgnoreIgnoreAllUnmapped并且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)

c# mapping automapper

13
推荐指数
1
解决办法
5791
查看次数

不要使用 System.Text.Json 转义单引号

我希望 .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 标准要求转义的字符除外),我也不想要这些字符。

c# single-quotes system.text.json

6
推荐指数
1
解决办法
2722
查看次数