2013-02-27 26 views
9

Tôi đang sử dụng mã bên dưới để lấy tên Phương thức gọi và tham số của nó bên trong một phương thức.Làm thế nào để có được ParameterInfo Value?

var stackTrace = new StackTrace(); 
var methodName = stackTrace.GetFrame(1).GetMethod().Name; 
var parameters = stackTrace.GetFrame(1).GetMethod().GetParameters(); 

foreach (var parameterInfo in parameters) 
{ 
    var name = parameterInfo.Name; 
    var value = "How to get value?"; 
} 

Bây giờ câu hỏi của tôi là lấy giá trị của tham số đó. Bất kỳ ý tưởng nào?

+0

có thể trùng lặp của [Có thể nhận các giá trị thông số 'cho mỗi khung trong ngăn xếp cuộc gọi trong .NET] (http://stackoverflow.com/questions/819576/is-it-possible-to-get-parameters- giá trị cho mỗi khung-trong-cuộc gọi-chồng-trong-net) – Habib

Trả lời

4

Câu trả lời ngắn gọn là bạn không thể.

Nhưng nếu bạn thực sự nhấn mạnh vào việc thực hiện nó có một số cách thats khá phức tạp hơn. có một đọc ở đây How get value of parameters in stacktrace

1

Không có cách nào dễ dàng để làm điều đó. Cách tiếp cận làm việc duy nhất mà tôi đã thấy là thêm mã vào ứng dụng của bạn sẽ đính kèm trình gỡ lỗi bên ngoài vào chính nó và đọc thông tin ngăn xếp. John Robbins cho biết đây là số book của mình bằng cách sử dụng các nguồn được sửa đổi là MDBG.

Các vấn đề liên quan