C# Azure WebJob和实例异步方法
我想在azure web作业中使用依赖项注入。为此,我必须将类和方法设置为非静态:C# Azure WebJob和实例异步方法,c#,delegates,async-await,azure-webjobs,C#,Delegates,Async Await,Azure Webjobs,我想在azure web作业中使用依赖项注入。为此,我必须将类和方法设置为非静态: public class Functions { [NoAutomaticTrigger] public async Task GetDriversAsync(TextWriter logger) { } [NoAutomaticTrigger] public void Test()
public class Functions
{
[NoAutomaticTrigger]
public async Task GetDriversAsync(TextWriter logger)
{
}
[NoAutomaticTrigger]
public void Test()
{
}
}
然后我想把它传递给JobHost对象的Call方法
我尝试这样做:
class Program
{
static void Main()
{
var config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
var host = new JobHost(config);
Functions f = new Functions();
host.Call(((Action)f.Test).Method);
host.Call(((Action)f.GetDriversAsync).Method);
}
}
使用synchronous方法,它工作正常,通过尝试执行Actionf.GetDriversAsync.method,我得到一个编译错误:
无法将类型“方法”转换为“操作”
如何正确写入该行?使用普通同步方法。 如果深入研究,您会发现主机异步调用这些方法。或者可以调用CallAsync来等待任务 如果我找到了正确的方法,您就不必担心您的方法会被异步/等待方式调用 所以不要把你的方法付诸行动。相反
host.Call(typeof(Functions).GetMethod("GetDriversAsync"));
很有效,谢谢。但为什么我们不创建函数的实例呢?@OlegSh查看executor。它创建实例。