小编Rog*_*lin的帖子

如何在 Azure Function 中对 TelemetryConfiguration 使用依赖注入

我尝试在 Azure Functions 中使用依赖注入进行遥测配置。在我的函数中,当我在函数构造函数中注入 TelemetryConfiguration 时,我会解决它。我想我真的不明白我将如何在 StartUp 中使用 TelemetryConfiguration,这就是为什么我会遇到异常。我将如何添加我已经配置的 TelemetryConfiguration。

到目前为止,我在这里做了一个简单的例子。

[assembly: FunctionsStartup(typeof(StartUp))]
public class StartUp : FunctionsStartup
{
    private string OmsModule { get; } = "OMS.VA";

    public override void Configure(IFunctionsHostBuilder builder)
    {
        builder.Services.Configure<TelemetryConfiguration>(
            (o) =>
            {
                o.InstrumentationKey = Environment.GetEnvironmentVariable("APPINSIGHTS_INSTRUMENTATIONKEY");
                o.TelemetryInitializers.Add(new OperationCorrelationTelemetryInitializer());
            });
    }
}

public class StopPlaceUpdateTimerTrigger
{
    private TelemetryClient _telemetryClient;
    private string _azureWebJobsStorage;

    public StopPlaceUpdateTimerTrigger(TelemetryConfiguration telemetryConfiguration)
    {
        _telemetryClient = new TelemetryClient(telemetryConfiguration);
    }

    [FunctionName("StopPlaceLoader")]
    public async Task StopPlaceLoaderMain([TimerTrigger("%CRON_EXPRESSION%", RunOnStartup = true)]TimerInfo myTimerInfo, ILogger log, ExecutionContext context)
    {
        SetConfig(context);
        var …
Run Code Online (Sandbox Code Playgroud)

dependency-injection azure telemetry azure-application-insights azure-functions

7
推荐指数
2
解决办法
5937
查看次数

带有简单注入器的 Legacy .NET 应用程序中的选项模式、配置

这篇文章https://medium.com/@dmitryzaets/legacy-net-applications-configuration-management-net-framework-4-5-1-68220335d9d8描述了如何将选项模式与 Autofac 一起使用。我试图将其翻译为与 Simple Injector 一起使用。但我没有运气。这是我的国际奥委会代码

public class IocBootstrap2
{
    private Container Container { get; }
    public IocBootstrap2()
    {
        Container = new Container();
        var configurationBuilder = new ConfigurationBuilder()
            .SetBasePath(Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Configuration"))
            .AddJsonFile("settings.json", optional: false, reloadOnChange: true);
        var configuration = configurationBuilder.Build();
        //Register Options
        Container.Register(typeof(IOptions<>), typeof(OptionsManager<>));
        Container.Register(typeof(IOptionsMonitor<>), typeof(OptionsMonitor<>));
        Container.Register(typeof(IOptionsFactory<>), typeof(OptionsFactory<>));
        Container.Register(typeof(IOptionsMonitorCache<>), typeof(OptionsCache<>));
        // Register ConfigurationOptions
        Container.RegisterConfigurationOptions2<MailingOptions>(configuration.GetSection("mailing"));

    #if DEBUG
        Container.Verify();
    #endif   
 }
}

public static class ConfigurationSetupExtensions2
{
    public static void RegisterConfigurationOptions2<TOptions>(this Container container, IConfiguration config)
        where TOptions : class
    {
        container.Register(typeof(IOptionsChangeTokenSource<TOptions>), …
Run Code Online (Sandbox Code Playgroud)

configuration configurationmanager legacy-code simple-injector .net-core-configuration

1
推荐指数
1
解决办法
1268
查看次数

将 3 个 IEnumerable&lt;Application&gt; 列表合并为一个

我已经简化了我的问题

public class Application
{
    public int Id { get; set; }
    public int Version { get; set; }
    public int Status { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的 3 个清单:

IEnumerable<Application> applications1 = new List<Application>
{
    new Application {Id = 1, Version = 1, Status = 1},
    new Application {Id = 2, Version = 1, Status = 1},
    new Application {Id = 3, Version = 3, Status = 1}
};

IEnumerable<Application> applications2 = new List<Application>
{
    new Application {Id = …
Run Code Online (Sandbox Code Playgroud)

c# linq ienumerable merge

1
推荐指数
1
解决办法
91
查看次数