Lấy lớp sau làm ví dụ:
class Sometype
{
int someValue;
public Sometype(int someValue)
{
this.someValue = someValue;
}
}
Sau đó, tôi muốn tạo một phiên bản của loại này bằng cách sử dụng phản chiếu:
Type t = typeof(Sometype);
object o = Activator.CreateInstance(t);
Thông thường điều này sẽ hoạt động, tuy nhiên vì SomeTypechưa xác định một phương thức khởi tạo không tham số, lệnh gọi tới Activator.CreateInstancesẽ ném một kiểu ngoại lệ MissingMethodExceptionvới thông báo " Không có phương thức tạo không tham số nào được xác định cho đối tượng này. " Có cách nào thay thế để vẫn tạo một thể hiện của kiểu này không? Sẽ thật là tệ khi thêm các hàm tạo không tham số vào tất cả các lớp của tôi.
FormatterServices.GetUninitializedObjectkhông cho phép tạo chuỗi chưa khởi tạo. Bạn có thể nhận được ngoại lệ:System.ArgumentException: Uninitialized Strings cannot be created.Hãy ghi nhớ điều này.