System.ArgumentException: "Тип должен быть производным от Delegate." - C#

Узнай цену своей работы

Формулировка задачи:

У меня задача "Написать код который будет создавать функцию из строки". Написал код:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Microsoft.CSharp;
  7. using static System.Console;
  8. using System.CodeDom.Compiler;
  9. namespace Challenges
  10. {
  11. class Program
  12. {
  13.  
  14. static void Main(string[] args)
  15. {
  16. CompilerParameters parameters = new CompilerParameters { GenerateInMemory = true }; //Будет ли в памяти компилироваться
  17. parameters.ReferencedAssemblies.Add("System.dll");
  18. CSharpCodeProvider provider = new CSharpCodeProvider();
  19. //компиляция
  20. var results = provider.CompileAssemblyFromSource(parameters, /*код*/ $@"
  21. using System;
  22. public static class FuncCreator
  23. {{
  24. public static int F()
  25. {{
  26. return 1;
  27. }}
  28. }}"); /
  29. System.Reflection.MethodInfo method = results.CompiledAssembly.GetType("FuncCreator").GetMethod("F");
  30. // получения информации от метода
  31. var a = method.CreateDelegate(method.GetType());
  32. //тут ошибка
  33. ReadKey();
  34. }
  35.  
  36. }
Не могу понять из-за чего всё время вылезает System.ArgumentException: Тип должен быть производным от Delegate. хоть с каким типом, всё время одна же ошибка. Не подскажете как исправить? Или такая функция уже есть.

Решение задачи: «System.ArgumentException: "Тип должен быть производным от Delegate."»

textual
Листинг программы
  1. System.Reflection.MethodInfo method = results.CompiledAssembly.GetType("FuncCreator").GetMethod("F");
  2.             // получения информации от метода
  3.  int n = (int)method.Invoke(null,null);
  4. Console.WriteLine( n);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы