Tôi đã tìm thấy this nhưng đã cố gắng sử dụng nó và không thành công.Sử dụng một đại biểu để gọi một nhà xây dựng
Làm cách nào tôi có thể tạo đối tượng bằng cách sử dụng phản xạ và làm cho nó nhanh bằng cách đặt nó vào đại biểu?
DynamicMethod dm = new DynamicMethod("MyCtor", t, new Type[] { });
var ctor = t.GetConstructor(new Type[] { });
ILGenerator ilgen = dm.GetILGenerator();
ilgen.Emit(OpCodes.Ldarg_0);
ilgen.Emit(OpCodes.Newobj, ctor);
ilgen.Emit(OpCodes.Ret);
var d = (Func<T>)dm.CreateDelegate(t);
dm.Invoke(null, new object[] { });
Trước khi đặt nó trong một deleage tôi đã cố gắng để ít nhất gọi nó và khi tôi đã làm ở trên tôi nhận được lỗi
An unhandled exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll
Thông tin thêm: ngoại lệ đã được ném bởi mục tiêu của một sự thỉnh nguyện.
Nếu tôi gọi d() thay vì tôi nhận được ngoại trừ
An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll
Additional information: Type must derive from Delegate.
Làm thế nào để tôi đặt một không constructor param thành một đại biểu và gọi nó?
Bạn gặp sự cố gì với Activator.CreateInstance? – dsolimano
dsolimano: Để làm chậm. Tôi đang tạo ra hàng nghìn đồ vật và nhiều thứ nữa. –