示例#1
0
        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>();
            }
        }
示例#2
0
        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);
        }