Tôi đang làm một số tuần tự hóa các đối tượng db linq, chứa các lớp EntitySet và EntityRef..NET, C#: Cách thêm thuộc tính tuần tự hóa tùy chỉnh hoạt động như giao diện ISerializable
Tôi đã tìm thấy một cách khá dễ dàng để xử lý tuần tự hóa các lớp này, bằng cách sử dụng ISerializable để xử lý đúng các thành viên thuộc loại này (chuyển đổi chúng thành danh sách để tuần tự hóa và hoàn tác nó trên deserialization).
Tuy nhiên, nó sẽ thực sự tốt đẹp nếu tôi có thể làm:
[Serializable]
[SerializeLinqEntities]
partial class Person
{ ... }
Thay vì:
partial class Person : ISerializable
{
public virtual void GetObjectData(SerializationInfo si, StreamingContext ctxt)
{
EntitySerializer.Serialize(this, typeof(Person), si, ctxt);
}
protected Person(SerializationInfo si, StreamingContext ctxt)
{
EntitySerializer.Deerialize(this, typeof(Person), si, ctxt);
}
}
Có cách nào để làm điều này? Tôi nhìn qua các lớp serialization và dường như không thể tìm thấy bất kỳ cách nào để thiết lập thói quen lọc serialization tùy chỉnh (nơi tôi có thể tìm thuộc tính tùy chỉnh của tôi).
Cảm ơn!
Hình như IClientFormatterSinkProvider và IServerFormatterSinkProvider sẽ cho phép tôi để cung cấp một BinaryFormatter với thiết lập tùy chỉnh SurrogateSelector tôi. Cảm ơn một lần nữa Sergey! – marq
Hmm ... vì vậy, khi nó quay ra, Microsoft đã thực hiện điều này rất nhiều khó khăn hơn nó trông. Xem liên kết sau: http://www.123aspx.com/Rotor/RotorSrc.aspx?rot=40027 Các nhà cung cấp bồn rửa, vì nó quay ra, khá phức tạp và không đơn giản như việc triển khai. Tôi thực sự muốn họ cung cấp giao diện API tốt hơn để giao tiếp với serialization nhị phân ... – marq