Tôi đang cố gắng sử dụng GetCustomAttributes()
để nhận thuộc tính được xác định trên thuộc tính. Vấn đề là thuộc tính là một thuộc tính bị ghi đè và tôi không thể tìm ra cách trích xuất thuộc tính bị ghi đè từ biểu thức. Tôi chỉ có thể tìm ra cách để có được lớp cơ bản.Lấy thuộc tính từ thuộc tính ghi đè thông qua Biểu thức LINQ
Dưới đây là một số mã
public class MyAttribute : Attribute
{
//...
}
public abstract class Text
{
public abstract string Content {get; set;}
}
public class Abstract : Text
{
[MyAttribute("Some Info")]
public override string Content {get; set;}
}
Bây giờ tôi đang cố gắng để có được những MyAttribute
ra khỏi lớp trừu tượng. Nhưng tôi cần lấy nó qua số Expression
. Đây là những gì tôi đã sử dụng:
Expression<Func<Abstract, string>> expression = c => c.Content;
Expression exp = expression.Body;
MemberInfo memberType = (exp as MemberExpression).Member;
var attrs = Attribute.GetCustomAttributes(memberType, true);
Thật không may atts
kết thúc khi trống. Vấn đề là menberType
sẽ kết thúc với số Text.Content
thay vì lớp Abstract.Content
. Vì vậy, khi tôi nhận được các thuộc tính, nó trả về không có gì.
Cảm ơn bạn đã liên kết đến câu hỏi khác. Tôi đã tìm kiếm một cái gì đó tương tự nhưng không tìm thấy cái đó. – Jero
Giải pháp mà bạn đưa ra là công việc xung quanh tôi đã sử dụng cho đến bây giờ rất tốt đẹp để có được một số hỗ trợ độc lập cho rằng một :-) Cảm ơn – Jero