Làm cách nào tôi có thể viết mã C# để biên dịch và chạy mã C# được tạo động. Có những ví dụ xung quanh?Biên dịch mã động bằng C#
Điều tôi đang làm là xây dựng động một lớp C# (hoặc các lớp) và chạy chúng khi chạy. Tôi muốn lớp được tạo ra tương tác với các lớp C# khác không động.
Tôi đã xem các ví dụ tạo tệp exe hoặc dll. Tôi không phải sau đó, tôi chỉ muốn nó biên dịch một số mã C# trong bộ nhớ và sau đó chạy nó. Ví dụ,
Vì vậy, đây là một lớp học mà không phải là năng động, nó sẽ được định nghĩa trong C# lắp ráp của tôi và sẽ chỉ thay đổi tại thời gian biên dịch,
public class NotDynamicClass
{
private readonly List<string> values = new List<string>();
public void AddValue(string value)
{
values.Add(value);
}
public void ProcessValues()
{
// do some other stuff with values
}
}
Đây là lớp học của tôi đó là năng động. Mã C# của tôi sẽ tạo ra lớp này và chạy nó,
public class DynamicClass
{
public static void Main()
{
NotDynamicClass class = new NotDynamicClass();
class.AddValue("One");
class.AddValue("two");
}
}
Vì vậy, kết quả là mã không động của tôi sẽ gọi ProcessValues và nó sẽ làm một số thứ khác. Điểm của mã động là cho phép chúng tôi hoặc khách hàng thêm logic tùy chỉnh vào phần mềm.
Cảm ơn.
Có khả thi để biên dịch các hội đồng "plugin" và chỉ tải các plugin đó vào thời gian chạy thay vì tự động biên dịch các công cụ không? –
Đúng vậy, vâng tôi đã làm điều đó trước đây cho một dự án khác. Điều đó là có thể, nhưng không thực sự là những gì chúng tôi đang có sau cho dự án này. Tôi sẽ xem xét nó, cảm ơn. – peter