Tôi đang làm việc về một thứ cần phải thực hiện trong hợp đồng (được chỉ định làm giao diện) và tạo một cá thể khi không có bất kỳ lớp bê tông được xác định chính thức nào đáp ứng giao diện này.Thư viện nguồn mở để tạo các loại cụ thể từ các giao diện trong thời gian chạy?
Một ví dụ về cú pháp là như thế này:
IExampleMessage message = MessageBuilder.Create<IExampleMessage>(x => {
x.PropertyA = "Test";
x.PropertyB = 5;
});
Tôi đã nhìn thấy các thư viện .NET khác và các khuôn khổ cung cấp hành vi như thế này (NServiceBus nói đến cái tâm), và tôi tự hỏi nếu có một Thư viện của bên thứ ba tóm tắt gen mã thời gian chạy. Tôi nghĩ Castle DynamicProxy sẽ là một nơi để xem xét, nhưng điều này dường như tập trung hoàn toàn vào proxy và chặn, và dường như không để lộ khía cạnh tạo mã.
Tôi có thể viết một triển khai sử dụng Reflection.Emit để tạo lớp trên bay, tuy nhiên tôi muốn sử dụng một thư viện nguồn mở vững chắc hơn nếu có.
Mọi đề xuất?
Tôi tò mò: Giao diện với các phương thức được hỗ trợ như thế nào? Làm thế nào để bạn có ý định chỉ định một thực hiện tùy chỉnh của một phương pháp với cú pháp đó? –
Giao diện với các phương thức không được hỗ trợ –
Tôi thấy mã tương tự trong BLTookit – adontz