Gần đây tôi đã bắt đầu thử nghiệm với PostSharp và tôi đã tìm thấy một khía cạnh đặc biệt hữu ích để tự động thực hiện INotifyPropertyChanged. Bạn có thể xem ví dụ here. Các chức năng cơ bản là tuyệt vời (tất cả các thuộc tính sẽ được thông báo), nhưng có những trường hợp mà tôi có thể muốn ngăn chặn thông báo.Ức chế PostSharp Multicast với thuộc tính
Ví dụ: tôi có thể biết rằng một thuộc tính cụ thể được đặt một lần trong hàm tạo và sẽ không bao giờ thay đổi nữa. Như vậy, không cần phải phát ra mã cho NotifyPropertyChanged. Chi phí trên là tối thiểu khi các lớp không được khởi tạo thường xuyên và tôi có thể ngăn chặn vấn đề bằng cách chuyển từ một thuộc tính được tạo tự động sang một thuộc tính do trường hậu thuẫn và ghi vào trường. Tuy nhiên, khi tôi đang học công cụ mới này, sẽ rất hữu ích nếu biết có cách để gắn thẻ thuộc tính với thuộc tính để chặn tạo mã. Tôi muốn để có thể làm điều gì đó như thế này:
[NotifyPropertyChanged]
public class MyClass
{
public double SomeValue { get; set; }
public double ModifiedValue { get; private set; }
[SuppressNotify]
public double OnlySetOnce { get; private set; }
public MyClass()
{
OnlySetOnce = 1.0;
}
}
Tuyệt vời, cảm ơn bạn. Đây là một công cụ rất mạnh mẽ và dự án của tôi cảm thấy sạch hơn đáng kể mà không cần đến hệ thống ống nước INotifyPropertyChanged tẻ nhạt. –