public async Task<object> Invoke(ExpandoObject input) { var configuration = input.Map<ClientConfiguration>(); var assembly = Assembly.Load(new AssemblyName(configuration.GeneratorAssembly)); var provider = new ExternalMetadataProvider(configuration); var metadata = provider.GetMetadata(); var generator = (IGenerator)Activator.CreateInstance(assembly.GetType(configuration.GeneratorType), metadata); return await generator.Process(); }