public static IEnumerable <Type> FindTypesInAssemblies(Predicate <Type> predicate) { var dap = new DefaultAssemblyProvider(LibraryManager); var assemblies = dap.CandidateAssemblies; return(FindTypesInAssemblies(assemblies, predicate)); }
static void Main(string[] args) { Console.WriteLine("Hello World!"); DefaultAssemblyProvider provider = new DefaultAssemblyProvider(); var assemblies = provider.GetAssemblies(@"C:\0\1MyProgram\0DesertFish\Lily.Framework\samples\Modularization\CoreConsole\Samples.Modularization.CoreConsoleHost\bin\Debug\Plugins", true); Console.ReadLine(); }
static void Main(string[] args) { var assemble = Assembly.GetEntryAssembly(); var dependencyContext = DependencyContext.Load(assemble); var aaa = dependencyContext.CompileLibraries; DefaultAssemblyProvider provider = new DefaultAssemblyProvider(); var assemblies = provider.GetAssemblies(@"C:\0\1MyProgram\0DesertFish\Lily.Framework\samples\Modularization\NetConsole\Samples.Modularization.NetConsoleHost\bin\Debug\Plugins", true); Console.ReadLine(); }
public static Assembly FindAssembyByName(string name) { var dap = new DefaultAssemblyProvider(LibraryManager); var assemblies = dap.CandidateAssemblies; var result = ( from Assembly assembly in assemblies let assemblyName = assembly.GetName() where System.String.Compare(name, assemblyName.Name, System.StringComparison.OrdinalIgnoreCase) == 0 select assembly); return(result.FirstOrDefault()); }
internal static void GenerateTagHelpers( IApplicationEnvironment applicationEnvironment, ILibraryManager libraryManager) { var assemblyProvider = new DefaultAssemblyProvider(libraryManager); var viewComponentDescriptorProvider = new DefaultViewComponentDescriptorProvider(assemblyProvider); var viewComponentDescriptors = viewComponentDescriptorProvider.GetViewComponents(); if (viewComponentDescriptors.Any()) { var moduleBuilder = new TagHelperModuleBuilder(applicationEnvironment); var proxyGenerator = new ViewComponentTagHelperProxyGenerator(moduleBuilder); foreach (var viewComponentDescriptor in viewComponentDescriptors) { proxyGenerator.CreateTagHelper(viewComponentDescriptor); } moduleBuilder.Build(); } }
public void CandidateAssemblies_ReturnsLibrariesReferencingAnyMvcAssembly() { // Arrange var manager = new Mock <ILibraryManager>(); manager.Setup(f => f.GetReferencingLibraries(It.IsAny <string>())) .Returns(Enumerable.Empty <ILibraryInformation>()); manager.Setup(f => f.GetReferencingLibraries("Microsoft.AspNet.Mvc.Core")) .Returns(new[] { CreateLibraryInfo("Foo") }); manager.Setup(f => f.GetReferencingLibraries("Microsoft.AspNet.Mvc.ModelBinding")) .Returns(new[] { CreateLibraryInfo("Bar") }); manager.Setup(f => f.GetReferencingLibraries("Microsoft.AspNet.Mvc")) .Returns(new[] { CreateLibraryInfo("Baz") }); var provider = new DefaultAssemblyProvider(manager.Object); // Act var candidates = provider.GetCandidateLibraries(); // Assert Assert.Equal(new[] { "Baz", "Foo", "Bar" }, candidates.Select(a => a.Name)); }
public IEnumerable <Assembly> GetLoadedAssemblies() { var dap = new DefaultAssemblyProvider(_libraryManager); return(dap.CandidateAssemblies); return(_libraryManager.GetReferencingLibraries(_coreAssemblyName.Name) .Select(info => Assembly.Load(new AssemblyName(info.Name)))); var dd = _libraryManager.GetLibraries(); foreach (var ll in dd) { System.Diagnostics.Debug.WriteLine("Library:>>" + ll.Name); } var assemblies = dd.Select(info => Assembly.Load(new AssemblyName(info.Name))); return(assemblies); /* * var referencingLibrary = _libraryManager.GetReferencingLibraries(_coreAssemblyName.Name); * * var many = _libraryManager.GetReferencingLibraries(_coreAssemblyName.Name) * .SelectMany(info => info.Assemblies); * foreach (var assemblyName in many) * { * System.Diagnostics.Debug.WriteLine("Assembly:>>" + assemblyName); * * } * * var result = referencingLibrary.Select(info => * { * return Assembly.Load(new AssemblyName(info.Name)); * }); * return result; * // return _libraryManager.GetReferencingLibraries(_coreAssemblyName.Name) * // .Select(info => Assembly.Load(new AssemblyName(info.Name))); */ }
public static IServiceProvider BuildServiceProvider(this IServiceCollection services, IConfiguration configuration) { var libraryManager = services.GetService <ILibraryManager>(); var dependencyResolver = services.GetService <IDependencyResolver>(); var dap = new DefaultAssemblyProvider(libraryManager); IEnumerable <Assembly> assemblies = dap.CandidateAssemblies; dependencyResolver.RegisterModules(assemblies); ConfigurationModule configurationModule = new ConfigurationModule(configuration); dependencyResolver.RegisterModule(configurationModule); dependencyResolver.Build(); IServiceProvider serviceProvider = dependencyResolver.Resolve <IServiceProvider>(); return(serviceProvider); }
public void CandidateAssemblies_IgnoresMvcAssemblies() { // Arrange var manager = new Mock <ILibraryManager>(); manager.Setup(f => f.GetReferencingLibraries(It.IsAny <string>())) .Returns(new[] { CreateLibraryInfo("Microsoft.AspNet.Mvc.Core"), CreateLibraryInfo("Microsoft.AspNet.Mvc"), CreateLibraryInfo("Microsoft.AspNet.Mvc.ModelBinding"), CreateLibraryInfo("SomeRandomAssembly"), }) .Verifiable(); var provider = new DefaultAssemblyProvider(manager.Object); // Act var candidates = provider.GetCandidateLibraries(); // Assert Assert.Equal(new[] { "SomeRandomAssembly" }, candidates.Select(a => a.Name)); }
/// <summary> /// Fors the assemblies. /// </summary> /// <param name="assemblies">The assemblies.</param> /// <param name="diagnosticSource">The diagnostic source.</param> /// <returns>Func<IHostBuilder, IRocketHostBuilder>.</returns> public static Func <IHostBuilder, IRocketHostBuilder> ForAssemblies( IEnumerable <Assembly> assemblies, DiagnosticSource diagnosticSource = null) { return(builder => { var b = RocketHostExtensions.GetOrCreateBuilder(builder); if (diagnosticSource != null) { b = b.With(diagnosticSource); } var logger = new DiagnosticLogger(b.DiagnosticSource); var enumerable = assemblies as Assembly[] ?? assemblies.ToArray(); var assemblyCandidateFinder = new DefaultAssemblyCandidateFinder(enumerable, logger); var assemblyProvider = new DefaultAssemblyProvider(enumerable, logger); var scanner = new SimpleConventionScanner(assemblyCandidateFinder, b.ServiceProperties, logger); return RocketHostExtensions.Swap(b, b .With(assemblyCandidateFinder) .With(assemblyProvider) .With(scanner) ); }); }
/// <summary> /// Initializes a new instance of the <see cref="AssemblyProvider"/> class. /// </summary> /// <param name="logger"><see cref="ILogger"/> for logging.</param> /// <param name="pluginAssemblies"><see cref="IEnumerable{T}"/> of string representations of assemblies containing plugins.</param> public AssemblyProvider(ILogger logger, IEnumerable <string> pluginAssemblies) { _innerProvider = new DefaultAssemblyProvider(logger); _baseLibraries = _innerProvider.Libraries; _libraries.AddRange(_baseLibraries); pluginAssemblies.ForEach(pluginAssembly => { var assembly = Assembly.LoadFrom(pluginAssembly); var basePath = Path.GetDirectoryName(assembly.Location); var assemblyName = assembly.GetName(); _localLibraries.Add(CreateLibraryFrom(basePath, assemblyName)); var assemblies = assembly.GetReferencedAssemblies(); var libraries = assemblies .Where(_ => !_baseLibraries.Any(l => l.Name == _.Name)) .Select(_ => CreateLibraryFrom(basePath, _)) .Where(_ => _ != null) .ToArray(); _localLibraries.AddRange(libraries); }); _libraries.AddRange(_localLibraries); }
public ExtensionAssemblyProvider(DefaultAssemblyProvider defaultAssemblyProvider) { this.defaultAssemblyProvider = defaultAssemblyProvider; }
public ModuleAssemblyProvider(DefaultAssemblyProvider defaultAssemblyProvider) { DefaultAssemblyProvider = defaultAssemblyProvider; }