Thông thường, tôi cần serialize một đối tượng, hoặc là để ghi nhật ký hoặc gỡ lỗi. Đây là một serialization một chiều - Tôi không cần phải làm cho nó trở lại sau này, tôi chỉ cần biến một đối tượng thành một chuỗi để viết nó ở đâu đó.Trong C#, làm thế nào để bạn một chiều serialize unserializable?
Có, có - đây là lý do tại sao bạn nên luôn ghi đè phương pháp ToString
. Tôi biết cái này. Nhưng tôi thường đối phó với các đồ vật mà tôi không viết và không thể thay đổi. Ngoài ra, tôi không muốn phải viết và cập nhật một phương thức ToString cho mọi lớp tôi viết.
Tuần tự hóa XML cung cấp giải pháp dường như hoàn hảo - chỉ cần làm phẳng đối tượng đó ra thành XML. Nhưng có rất nhiều hạn chế, đặc biệt là bạn không thể serialize IDictionary, và bạn phải có một constructor parameterless. Tôi có thể học những thứ này trong lớp học của mình, nhưng - một lần nữa - tôi thường làm việc với các lớp của người khác.
Vì vậy, giải pháp để nhận được biểu diễn chuỗi toàn diện của một đối tượng là gì? Có cái gì đơn giản mà tôi đang thiếu?
Có thể một số phản ánh để lặp lại và hiển thị các thành viên thành một chuỗi? Tuy nhiên, đó là chậm và do đó chỉ hợp lý cho các tình huống lỗi mà hiệu suất không quan trọng (nữa) ... –