Метод автозаполнения не работает во время выполнения - PullRequest
0 голосов
/ 30 мая 2018

В настоящее время я создаю функцию Azure.DI Layer - это проект .netstandard.Я использую autofac в качестве библиотеки DI.Все компилируется, но во время выполнения это дает мне метод not found исключение .Я прочитал кучу статей о том, что мне нужно обновить все свои пакеты nuget.Это мне не поможет.Это код, который не работает

(. Netstandard) DI Project -> InjectConfuguration.cs

using Autofac;
using Autofac.Extensions.DependencyInjection;
using Awesomeness.AutofacInjection;
using Microsoft.Azure.WebJobs.Host.Bindings;
using Microsoft.Azure.WebJobs.Host.Protocols;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Threading.Tasks;

... Некоторый код здесь ..

var services = new ServiceCollection();
    ... some code here ...
    var containerBuilder = new ContainerBuilder();

                containerBuilder.RegisterModule(new ApplicationModule());
                containerBuilder.Populate(services); // Exception here

                var applicationContainer = containerBuilder.Build();

               var serviceProvider = new AutofacServiceProvider(applicationContainer);

                return serviceProvider;

Исключение:

  Method not found: 'Void 
Autofac.Extensions.DependencyInjection.AutofacRegistration.Populate(Autofac.ContainerBuilder, 
System.Collections.Generic.IEnumerable`1<Microsoft.Extensions.DependencyInjection.ServiceDescriptor>)'.

StackTrace

at ProjectName.Functions.DI.DIConfig.<>c.<.ctor>b__0_0(ContainerBuilder builder)
   at AzureFunctions.Autofac.Configuration.DependencyInjection.Initialize(Action`1 cfg)
   at ProjectName.Functions.DI.DIConfig..ctor()

(.NET Framework) Функция Проект -> Function1.cs

using System;
using Awesomeness;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;

namespace FunctionApp2
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static void Run([TimerTrigger("0 */1 * * * *", RunOnStartup = true)]TimerInfo myTimer, TraceWriter log, [Inject] IAwesomeClass awesomclass)
        {

            log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
            log.Info($"{awesomclass.VeryAwesomeMethod()} at: {DateTime.Now}");
        }
    }
}

Я создал фиктивный проект, который копирует мою ошибку,https://www.mediafire.com/file/j03x3v6c55gy1aq/Awesomeness.zip

...