Code: Select all
IJobActivatorExCode: Select all
public static async Task Main(string[] args)
{
var builder = Host
.CreateDefaultBuilder(args)
.ConfigureFunctionsWebApplication()
.ConfigureAppConfiguration(builder =>
{
builder.AddUserSecrets();
})
.ConfigureServices((appBuilder, services) =>
{
var configuration = appBuilder.Configuration;
var connectionString = configuration.GetConnectionString("DefaultConnection");
services.AddSingleton(provider => BuildContainer(provider, connectionString));
services.Replace(ServiceDescriptor.Singleton(svc => new FunctionJobActivator(svc.GetRequiredService())));
services.Replace(ServiceDescriptor.Singleton(svc => new FunctionJobActivator(svc.GetRequiredService())));
});
var host = builder.Build();
await host.RunAsync();
}
public class FunctionJobActivator : IJobActivator, IJobActivatorEx
{
private readonly IMyDiContainer Container;
public FunctionJobActivator(IMyDiContainer container)
{
Container = container;
}
public T CreateInstance()
{
return Container.Build();
}
public T CreateInstance(IFunctionInstanceEx functionInstance)
{
return Container.Build();
}
}
public class Function1
{
private readonly MySpecialSystems Systems;
public Function1(MySpecialSystems systems)
{
Systems = systems;
}
[Function("Function1")]
public void Run([TimerTrigger("*/5 * * * * *", RunOnStartup = true)] TimerInfo myTimer)
{
var test = Systems.ToQuery().Take(10).ExecuteAll();
}
}
Mobile version