如何在C#Azure函数中的MongoDB序列化器注册表等全局状态初始化



我们正在使用azure函数中的c#/。net使用mongodb驱动程序。要使用自定义序列化器,驱动程序需要使用"全局注册"的"注册"自定义序列化器,显然应该在应用程序启动时进行,并且独立于任何特定功能。

有了这个和其他跨切割问题,是否可以在Azure功能中使用任何技术,而Azure功能团队支持或建议?我已经在Uservoice中看到了有关这些事情的请求,并看到Azure功能团队已经开始尝试增加对功能启用DI/IOC模式的支持,但不知道当前的地位是什么。

我不确定完成此操作的"官方"方法是什么,但是我认为您可以将初始化代码放在脚本文件中。该代码将执行一次,每个功能应用程序实例。

例如以下功能

static DateTime Now() => DateTime.Now;
static DateTime now = Now();
public static HttpResponseMessage Run(HttpRequestMessage req, TraceWriter log)
{
    log.Info(now.ToString());
    return req.CreateResponse(HttpStatusCode.OK);
}

将在随后的执行中打印相同的日期/时间,因为now仅初始化一次。

最新更新