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

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

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

У меня задача "Написать код который будет создавать функцию из строки". Написал код:
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. хоть с каким типом, всё время одна же ошибка. Не подскажете как исправить? Или такая функция уже есть.

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

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

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


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

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

7   голосов , оценка 4 из 5
Похожие ответы