Tôi có một số lớp được trang trí với DebuggerDisplayAttribute.Có tồn tại phương thức để hiển thị đối tượng bằng DebuggerDisplayAttribute
Tôi muốn có thể thêm câu lệnh theo dõi vào Bài kiểm tra đơn vị sẽ hiển thị các trường hợp của các lớp này.
Hiện có tồn tại một phương pháp trong Khuôn khổ .NET sẽ hiển thị đối tượng được định dạng bằng DebuggerDisplayAttribute (hoặc quay trở lại sử dụng .ToString() nếu không có DebuggerDisplayAttribute được định nghĩa) không?
EDIT
Để làm rõ, tôi đã hy vọng có thể có một cái gì đó được xây dựng vào khung. Tôi biết tôi có thể có được giá trị tài sản từ DebuggerDisplayAttribute, nhưng sau đó tôi cần phải định dạng ví dụ của tôi bằng cách sử dụng chuỗi định dạng đại diện bởi DebuggerDisplayAttribute.Value.
Nếu tôi cuộn của riêng tôi, tôi muốn dự tính một phương pháp mở rộng dọc theo dòng sau đây:
public string FormatDebugDisplay(this object value)
{
DebugDisplayAttribute attribute = ... get the attribute for value ...
if (attribute = null) return value.ToString();
string formatString = attribute.Value;
??? How do I format value using formatString ???
return SomeFormatMethod(formatString, value);
}
Cảm ơn. Viết phương pháp của riêng tôi theo cách bạn mô tả loại thất bại mục đích của những gì tôi đã cố gắng đạt được. Tôi đã đi với trọng ToString() cho các lớp học trong câu hỏi. – Joe
Nếu mã ứng dụng của bạn không gán bất kỳ ý nghĩa nào cho ToString(), thì có, điều đó đơn giản hơn. Trong một số trường hợp, ToString() đã có ý nghĩa (ví dụ:để hiển thị đối tượng trong hộp danh sách), và trong những trường hợp đó, DebuggerDisplay cộng với một phương thức vẫn có thể hữu ích. –
Bạn sẽ không cần phải "nhúng trình gỡ lỗi Visual Studio vào ứng dụng của bạn" để viết một phương thức cung cấp giá trị. Tôi nghi ngờ rằng _most_ sử dụng DebuggerDisplay là các giá trị thuộc tính đơn giản và việc triển khai thực hiện đó sẽ là một phương thức có giá trị. –