使用 TypeAccessor.Create FastMember 时似乎总是返回按字母顺序排序的列列表。是否可以告诉它保留类中列的顺序?
例如:
var testClass = new { B = "1", A = "2" };
将从 GetMembers 返回 A 列,然后返回 B 列,如果可能的话,我想让它保留 B 列然后 A 的顺序。
我创建了一个fork该项目的列顺序选项并添加了PR到原始存储库。OrdinalAttribute
添加以指定列顺序。
可以使用序数属性,如下所示:
public class ObjectReaderWithDefinedColumnsOrderType
{
[Ordinal(1)]
public byte C { get; set; }
[Ordinal(0)]
public int? D { get; set; }
}
-
IDataReader
返回的对象ObjectReader.Create()
将根据定义的属性进行列排序。
- 如果源类中未定义该属性,则使用字母顺序。
- 如果两个字段具有相同的 Ordinal 值,则使用字母顺序。
- 如果仅为某些属性定义了属性,则列将按序数值排序,然后按字母顺序排列(没有属性的属性被视为
-1
序数)。
您可以立即使用 my for 或等到 PR 与原始存储库合并。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)