public Type[] GetControllerTypes(IEnumerable <ServiceInfo> services) { var result = _webApiGenerator.Generate(services); DynamicAssembly assembly = new DynamicAssembly(_eventHub); assembly.AppendSourceUnits(result); assembly.AddWebApiReferences(); AssemblyPurpose p = AssemblyPurpose.Handlers | AssemblyPurpose.Commands | AssemblyPurpose.Queries | AssemblyPurpose.Results; assembly.AddReferenceFrom(_dynamicPool.Where(x => (x.Purpose & p) > 0).Select(x => x.Assembly)); _dynamicPool.AddOrReplace(assembly); assembly.Compile(); var controllerTypes = assembly.Assembly.GetTypes() .Where(x => typeof(ControllerBase).IsAssignableFrom(x)) .ToArray(); return(controllerTypes); }