I Have hai chức năng:Type.GetMethod với một tình trạng quá tải Generic - Nhận Generic MethodInfo mà không lặp qua tất cả các phương pháp
public void DeleteRecord(int id);
public T DeleteRecord<T>(int id);
Dưới đây là cách tôi cố gắng để tự động gọi chung phương pháp:
MethodInfo method = typeof(DAL).GetMethod("DeleteRecord", new[] { typeof(int) });
MethodInfo generic = method.MakeGenericMethod(returnType);
object o = generic.Invoke(null, new object[] { dbname, spname, expandoAsDictionary });
Dòng đầu tiên t một ngoại lệ bởi vì nó tìm thấy một định nghĩa mơ hồ. Có cách nào tôi có thể nhận được MethodInfo
của phương pháp chung mà không sử dụng GetMethods
và lặp qua các kết quả yêu cầu IsGenericMethod
?
Chỉnh sửa: Vui lòng xóa 'Trùng lặp' vì cả hai câu trả lời được đề xuất đều giải quyết vấn đề này bằng vòng lặp bên trong (GetMethods(). Chọn ...) hoặc thậm chí không xử lý quá tải.
Đây không phải là bản sao. tôi đã biết làm thế nào để gọi một phương pháp chung với sự phản ánh nhưng tôi có một ngoại lệ định nghĩa mơ hồ. Vui lòng đọc câu hỏi của tôi. –
nó là một bản sao, nhưng tôi liên kết câu hỏi sai, xin lỗi ... đây là một trong những chính xác: http://stackoverflow.com/q/5218395/201088. –
vẫn không bị lừa đảo! tôi đã yêu cầu làm thế nào để làm điều đó mà không cần sử dụng hàm GetMethods(). câu trả lời được đánh dấu trong liên kết của bạn đang sử dụng nó ... –