Khi thiết kế ngoại lệ tùy chỉnh cho .NET, MSDN cung cấp these guidelines. Đặc biệt, các hướng dẫn nêu rằng một ngoại lệ tùy chỉnh:Triển khai ngoại lệ tùy chỉnh trong Thư viện lớp di động
- nên serializable, ví dụ: thực hiện
ISerializable
và được trang trí với các thuộc tính[Serializable]
, và - nên thực hiện (de) constructor serialization, ví dụ:
protected CustomException(SerializationInfo info, StreamingContext context)
.
Tuy nhiên, trong một Portable Class Library không phải của SerializableAttribute
, ISerializable
và SerializationInfo
được hỗ trợ.
Tôi nên thiết kế đầy đủ ngoại lệ tùy chỉnh trong Thư viện lớp di động đồng thời nhắm mục tiêu .NET Framework và một hoặc nhiều nền tảng như thế nào?
Rất cám ơn vì đã làm rõ, Marc. Tôi nghi ngờ rằng đây là trường hợp (hướng dẫn đã không được cập nhật cho .NET 4.5 ví dụ), nhưng nó cảm thấy bảo đảm hơn để có được xác nhận từ một nguồn đáng tin cậy. –
@Anders Tôi đã thêm một số ghi chú vào phần "Nội dung Cộng đồng" - chúng có thể xuất hiện tại một số thời điểm. –
Một số điều này được thực thi tại thời điểm chạy. Ví dụ, nếu bạn cố gắng thêm một cái gì đó vào bộ sưu tập Exception.Data nó sẽ ném một ngoại lệ trên toàn bộ khung chứ không phải trên Silverlight. –