Nói rằng tôi có một lớp SpaceShip
, như vậy:Sử dụng TypeBuilder để tạo ra một constructor pass-through cho lớp cơ sở
public class SpaceShip {
public SpaceShip() { }
public SpaceShip(IRocketFuelSource fuelSource) { }
}
Tôi muốn sử dụng TypeBuilder
để tạo ra một loại tại thời gian chạy mà được thừa hưởng từ tàu vũ trụ và định nghĩa một hàm tạo cho mỗi cái trong SpaceShip. Tôi không cần các nhà xây dựng để thực sự làm bất cứ điều gì ngoại trừ vượt qua đối số của họ lên đến cha mẹ ("pass-through" constructors). Ví dụ, loại được tạo ra sẽ giống như thế này nếu thể hiện bằng C#:
public class SpaceShipSubClass : SpaceShip {
public SpaceShipSubClass() : base() { }
public SpaceShipSubClass(IRocketFuelSource fuelSource) : base(fuelSource) { }
}
Để những điều phức tạp một chút, tôi không thực sự biết được lớp học kiểu được tạo ra sẽ được kế thừa từ cho đến khi thời gian chạy (vì vậy Tôi sẽ phải đưa vào tài khoản bất kỳ số lượng các nhà xây dựng, có thể với các tham số mặc định).
Điều này có khả thi không? Tôi nghĩ rằng tôi có thể tìm ra nếu tôi có một hướng chung để bắt đầu, nó chỉ là tôi hoàn toàn mới với TypeBuilder
.
Cảm ơn!
Chỉ cần những gì tôi đang tìm kiếm! Mặc dù tôi đã phải thay đổi thành 'GetConstructors (BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)' để có được những nhà xây dựng được bảo vệ 'pesky '.. – dlras2
@Dan: Tuyệt vời, tôi không chắc ai khác có nhu cầu điều này. Cảm ơn bạn đã thêm từ khóa đó, tôi phải có (mis) viết tờ khai bằng tay sau đó sao chép chỉ dán nội dung. – Cameron
Thưa ông, là vàng nguyên chất! – Waescher