使用 Riok.Mapperly 和 C#,我需要映射包含此类值的字符串类型属性
"1_2_4_8"
并将其映射到 List<int>
。
我知道我可以向映射类添加一个方法供 Mapperly 选择,如下所示:
[Mapper]
public static partial class CountryMapper
{
public static partial M.Country ToBoCountry(this EF.Country country);
private static List<int> SplitUnderscore(string? str)
{
return str is null ? [] : [.. str.Split('_').Where(x =>
!string.IsNullOrEmpty(x)).Select(int.Parse)];
}
}
这样,如果 County 类中的其他属性有一个具有这样的值的字符串
"1|2|4|8"
,我就无法创建像这样的另一个方法:
private static List<int> SplitPipe(string? str)
{
return str is null ? [] : [.. str.Split('|').Where(x =>
!string.IsNullOrEmpty(x)).Select(int.Parse)];
}
它只会选择它找到的第一个。
有没有办法指示mapperly使用什么方法来映射特定的属性?
Mapperly 还无法做到这一点。你需要的是#783。实现此功能的 PR 已开放,可能会在几周内合并。