System.ArgumentException: "Тип должен быть производным от Delegate." - C#
Формулировка задачи:
У меня задача "Написать код который будет создавать функцию из строки".
Написал код:
Не могу понять из-за чего всё время вылезает
System.ArgumentException: Тип должен быть производным от Delegate.
хоть с каким типом, всё время одна же ошибка.
Не подскажете как исправить?
Или такая функция уже есть.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.CSharp; using static System.Console; using System.CodeDom.Compiler; namespace Challenges { class Program { static void Main(string[] args) { CompilerParameters parameters = new CompilerParameters { GenerateInMemory = true }; //Будет ли в памяти компилироваться parameters.ReferencedAssemblies.Add("System.dll"); CSharpCodeProvider provider = new CSharpCodeProvider(); //компиляция var results = provider.CompileAssemblyFromSource(parameters, /*код*/ $@" using System; public static class FuncCreator {{ public static int F() {{ return 1; }} }}"); / System.Reflection.MethodInfo method = results.CompiledAssembly.GetType("FuncCreator").GetMethod("F"); // получения информации от метода var a = method.CreateDelegate(method.GetType()); //тут ошибка ReadKey(); } }
Решение задачи: «System.ArgumentException: "Тип должен быть производным от Delegate."»
textual
Листинг программы
System.Reflection.MethodInfo method = results.CompiledAssembly.GetType("FuncCreator").GetMethod("F"); // получения информации от метода int n = (int)method.Invoke(null,null); Console.WriteLine( n);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д