private static void RegisterPrograms(ContainerBuilder builder, IProgramAssemblyProvider programAssemblyProvider) { var assemblies = programAssemblyProvider.GetAbsolutePaths() .Select(p => Assembly.LoadFile(p)) .ToArray(); if (assemblies.Any()) { builder.RegisterAssemblyTypes(assemblies) .Where(t => t.GetInterfaces().Contains(typeof(IProgram))) .As <IProgram>(); } }
public static void Configure(ContainerBuilder builder, IProgramAssemblyProvider programAssemblyProvider, II2CAddressProvider i2CAddressProvider) { RegisterDrivers(builder, i2CAddressProvider); RegisterServices(builder); if (programAssemblyProvider != null) { RegisterPrograms(builder, programAssemblyProvider); } RegisterVisionHandlers(builder); RegisterRuntime(builder); }