Hãy chịu với tôi nếu câu hỏi này không được xây dựng tốt. Không biết là một phần của vấn đề.Tự đề cập đến thuộc tính trong C#. Phản ánh? Chung? Kiểu?
Một ví dụ về những gì tôi muốn thực hiện có thể được tìm thấy trong PropertyChangedEventArgs trong WPF. Nếu bạn muốn gắn cờ mà một tài sản đã thay đổi trong WPF, bạn làm điều đó như thế này:
PropertyChanged(this, new PropertyChangedEventArgs("propertyName"));
Bạn vượt qua một chuỗi để PropertyChangedEventArgs đó đề cập đến tên tài sản mà thay đổi.
Bạn có thể tưởng tượng rằng tôi không thực sự muốn các chuỗi được mã hóa cứng cho tên thuộc tính trên mã của tôi. Refactor-đổi tên bỏ lỡ nó, tất nhiên, mà làm cho nó không chỉ về mặt thẩm mỹ không hấp dẫn nhưng cũng dễ bị lỗi.
Tôi muốn nhiều hơn là tham chiếu đến thuộc tính đó ... bằng cách nào đó.
PropertyChanged(this, new PropertyChangedEventArgs(?SomeClass.PropertyName?));
Có vẻ như tôi có thể bọc nó theo một phương pháp ngắn cho phép tôi nói điều gì đó như trên.
private void MyPropertyChanged(??) {
PropertyChanged(this, new PropertyChangedEventArgs(??.ToString()??));
}
... so I can say something like:
MyPropertyChanged(Person.Name); //where I'm interested in the property *itself*
Cho đến giờ tôi đang vẽ trống.
xem thêm http://stackoverflow.com/questions/388775/how-do-i-get-the-name-of-a-property-from-a-property-in-c-2-0 –
http : //weblogs.asp.net/cazzu/archive/2006/07/06/Linq-beyond-queries_3A00_-strong_2D00_typed-reflection_2100_.aspx –
có thể trùng lặp của [Nhận tên và loại phương thức sử dụng biểu thức lambda] (http://stackoverflow.com/questions/273941/get-method-name-and-type-using-lambda-expression) – nawfal