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);