01/10/2018, 09:33

Thiết kế CustomAttribute tự động gọi một phương thức khác khi kết thúc method

Tôi có biết 1 thư viện cho C# có tên PortSharp.
Khi đặt Attribute của nó trước class hoặc method thì khi thực thi xong các method, property của đối tượng đó nó sẽ tự động gọi một phương thức khác mà không cần viết trong mã. Điều này tiết kiệm rất nhiều thời gian viết code cũng như số lượng code.
Bạn nào biết cách thiết kế kiểu Attribute này không xin chỉ giáo dùm
Đây là mô tả 2 kiểu code có chức năng tương tự nhau:

Của mình (dài lê thê)

class MyClass :InotifyPropertyChanged{
    public PropertiChangedEventHandler PropertiChanged;

    private void NotifyProperty([CallerMenberName]string name = null){
        if(PropertyChanged !=null) PropertyChanged(this,....);
    } 
    private int _ID=0;
    
    public int ID{ 
        get{return _ID;}
        set{
             _ID=value;
             NotifyProperty();
        }
    }
}

PortSharp (ngắn và sáng sủa hơn rất nhiều)

[NotifyPropertyChanged]
class MyClass{
    public int ID{get;set;}
}
Văn Dương viết 11:46 ngày 01/10/2018

Up ! Nổi lên đuê…

Quân viết 11:33 ngày 01/10/2018

Cái này tương tự annotation processor trong java, nói chung là sẽ phải modify code trong khi build theo 1 ý đồ nào đó của bạn, nếu bạn không chuyên thì nên dùng các thư viện sẵn có cho dễ

Văn Dương viết 11:48 ngày 01/10/2018

À mình đang đi tìm hiểu để biết ra nó.
Thư viện kia tính phí bản quyền, close source khó kiểm soát nên không muốn dùng.

Bài liên quan
0