Cách dễ nhất để làm điều đó có thể là DLINQ như TcK đề xuất.
Nhanh nhất (tôi tin rằng, trong 3.5) là tạo một DynamicMethod. Nó cũng là phương pháp đáng sợ nhất. Về cơ bản, bạn đang xây dựng một phương pháp sử dụng IL, có cảm giác giống như viết mã bằng ngôn ngữ máy.
Tôi cần thực hiện điều này để tự động đính kèm trình xử lý sự kiện trong một số điều hay cách khác (tốt, tôi không cần phải làm điều đó, tôi chỉ muốn thực hiện các sự kiện kiểm tra đơn vị dễ dàng hơn). Nó có vẻ hơi khó khăn vào thời điểm đó bởi vì tôi không biết crap về IL, nhưng tôi đã tìm ra một cách đơn giản để thực hiện điều này.
Việc bạn làm là tạo phương thức thực hiện chính xác những gì bạn muốn. Càng gọn thì càng tốt. Tôi sẽ cung cấp một ví dụ nếu tôi có thể tìm ra chính xác những gì bạn đang cố gắng làm. Bạn viết phương thức này trong một lớp trong một dự án DLL và biên dịch nó trong chế độ phát hành. Sau đó, bạn mở DLL trong Reflector và tháo rời phương thức của bạn. Reflector cho bạn tùy chọn ngôn ngữ mà bạn muốn tháo rời - chọn IL. Bây giờ bạn có các cuộc gọi chính xác mà bạn cần phải thêm vào phương thức động của mình. Chỉ cần làm theo ví dụ trên MSDN, chuyển đổi IL của ví dụ cho mã phương thức được phản ánh của bạn.
Phương pháp động, khi được xây dựng, gọi ở tốc độ tương tự như phương pháp được biên dịch (xem thử nghiệm nơi phương pháp động có thể được gọi trong ~ 20ms nơi phản ánh mất hơn 200 mili giây).
Bạn có thể cho chúng tôi biết trường hợp sử dụng thực tế của bạn là gì? Có thể có một số cách khác để giải quyết yêu cầu của bạn. – SolutionYogi
Nếu tôi đọc chính xác, bạn muốn eval() một chuỗi? http://en.wikipedia.org/wiki/Eval – Stobor