Я пытаюсь использовать HangFire для вызова метода действия в классе. Из приведенного ниже кода метод действия работает правильно, если вызывается вне HangFire, но выдает исключение при использовании HangFire. Я также пытался использовать Invoke()
, как указано в других подобных сообщениях.
Тело выражения должно иметь тип 'MethodCallExpression' (Параметр'methodCall ')'
I 'Я хотел бы выяснить, как заставить HangFire выполнять этот тип метода, если это возможно.
class Program
{
static void Main(string[] args)
{
var a = new ActionTest();
// Calling this method prints out Hello World correctly
a.DoAction();
GlobalConfiguration.Configuration.UseSqlServerStorage(@"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Test;Integrated Security=True");
// Call this method from HangFire produces exception: Expression body should be of type 'MethodCallExpression'(Parameter'methodCall')'
BackgroundJob.Enqueue<ActionTest>(a => a.DoAction());
}
}
public class ActionTest
{
public ActionTest()
{
DoAction = WriteHello;
}
public Action DoAction;
public void WriteHello()
{
Console.WriteLine("Hello World");
}
}