c# - BinaryFormatter Serialize 在序列化期间排除 datatable.defaultview.sort 属性
问题描述
我有一个具有多个属性的类,类中的一些属性类型是datatable
我正在使用 BinaryFormatter 创建类的克隆副本,它工作正常,但是datatable.defaultview.sort
设置了一些值并不能像克隆对象那样处理。这是一个示例代码
public static void Main(string[] args)
{
TestCloneDatatable();
}
private static void TestCloneDatatable()
{
DataTable datatatable = new DataTable();
datatatable.Columns.Add("ID", typeof(int));
datatatable.Columns.Add("AddressLine1", typeof(string));
for (int i = 0; i < 10; i++)
{
datatatable.Rows.Add(i, string.Concat("test ", i));
}
datatatable.DefaultView.Sort = "AddressLine1 ASC";
Test test = new Test();
test.ID = 1;
test.Name = "my Name";
test.Addresss = datatatable;
Test testClone = test.Clone();
string sort = testClone.Addresss.DefaultView.Sort; //here it is empty, I need "AddressLine1 ASC" should be there
}
[SerializableAttribute]
public class Test
{
public int ID { get; set; }
public string Name { get; set; }
public DataTable Addresss { get; set; }
public Test Clone()
{
Test result = DeepCopy<Test>(this);
return result;
}
protected T DeepCopy<T>(T item)
{
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream stream = new System.IO.MemoryStream();
formatter.Serialize(stream, item);
stream.Seek(0, SeekOrigin.Begin);
T result = (T)formatter.Deserialize(stream);
stream.Close();
return result;
}
}
解决方案
推荐阅读
- database-design - 在我的 Azure 表存储中设计 PartitionKey 和 RowKey
- unit-testing - NgRx/数据测试实体$
- mongodb - 将 $project 水平格式的文档值的 MongoDB 查询
- asp.net-core - 在 EF Core 中为嵌套类配置 Fluent API
- java - 如何解压/简化匿名内部类
- python - 我如何使用 img_id 在 post 方法中发送图像模型中的数据来编辑图像
- css - Nuxt 对 scss 使用不正确的加载程序
- c++ - PyTorch 到 onnx 并与 opencv-dnn 一起使用?
- scala - 将 Scala 数据帧转换为 HashMap
- go - 在创建自定义资源拥有的秘密时再次协调触发器