/// <summary> /// Adds rule to exclude certain assemblies (that name starts with System or mscorlib) /// and not consider their types /// </summary> /// <returns>Auto registration</returns> public static IAutoRegistration ExcludeSystemAssemblies(this IAutoRegistration autoRegistration) { autoRegistration.ExcludeAssemblies(a => a.GetName().FullName.StartsWith("System") || a.GetName().FullName.StartsWith("mscorlib")); return(autoRegistration); }
/// <summary> /// Loads assemblies from given assembly file name. /// </summary> /// <param name="autoRegistration">Auto registration.</param> /// <param name="assemblyPaths">Assembly paths.</param> /// <returns>Auto registration</returns> public static IAutoRegistration LoadAssemblyFrom(this IAutoRegistration autoRegistration, IEnumerable <string> assemblyPaths) { foreach (var assemblyPath in assemblyPaths) { autoRegistration.LoadAssemblyFrom(assemblyPath); } return(autoRegistration); }
/// <summary> /// Loads all assemblies found in the assembly paths. /// </summary> /// <param name="autoRegistration">The auto registration.</param> /// <param name="assemblyPaths">The paths containing assemblies to load.</param> /// <param name="topLevelOnly">if set to <c>true</c> [top level only].</param> /// <returns>Auto registration</returns> public static IAutoRegistration LoadAllAssemblies(this IAutoRegistration autoRegistration, IEnumerable <string> assemblyPaths, bool topLevelOnly = true) { foreach (var assemblyPath in assemblyPaths) { autoRegistration.LoadAllAssemblies(assemblyPath, topLevelOnly); } return(autoRegistration); }
/// <summary> /// Loads assembly from given assembly file name. /// </summary> /// <param name="autoRegistration">Auto registration.</param> /// <param name="assemblyPath">Assembly path.</param> /// <returns>Auto registration</returns> public static IAutoRegistration LoadAssemblyFrom(this IAutoRegistration autoRegistration, string assemblyPath) { #if NETSTANDARD1_6 System.Runtime.Loader.AssemblyLoadContext.Default.LoadFromAssemblyPath(assemblyPath); #else Assembly.LoadFrom(assemblyPath); #endif return(autoRegistration); }
public static IAutoRegistration IncludeWellKnownITypeName <T>(this IAutoRegistration registration, string value) where T : LifetimeManager, new() { Contract.Assert(registration != null); registration.Include( type => type.ImplementsWellKnownITypeName(value), Then.Register().UsingLifetime <T>().AsITypeName()); return(registration); }
/// <summary> /// Loads all assemblies found in the assembly path. /// </summary> /// <param name="autoRegistration">Auto registration.</param> /// <param name="assemblyPath">The path containing assemblies to load.</param> /// <param name="topLevelOnly">if set to <c>true</c> [top level only].</param> /// <returns>Auto registration</returns> public static IAutoRegistration LoadAllAssemblies(this IAutoRegistration autoRegistration, string assemblyPath, bool topLevelOnly = true) { var searchLevel = topLevelOnly ? SearchOption.TopDirectoryOnly : SearchOption.AllDirectories; //var filesToLoad = Directory.EnumerateFiles(assemblyPath, "*", searchLevel) // This is more efficient if using >= .NET 4 var filesToLoad = Directory.GetFiles(assemblyPath, "*", searchLevel) .WhereHasDotNetAsseblyExtension() .WhereIsDotNetAssembly(); autoRegistration.LoadAssemblyFrom(filesToLoad); return(autoRegistration); }
public void TestIncludeAssembliesFromCurrentDomain() { // given IAutoRegistration autoRegistration = null; using (var dependencyResolver = CreateSubject( (_, ar) => { // when ar .IncludeAssembliesFromCurrentDomain(a => a.FullName.StartsWith("Roham.SmokeTests")) .ApplyRegistrations(); autoRegistration = ar; })) { // then Assert.AreEqual(1, autoRegistration.IncludeAssemblies.Count(), "there should be only one assembly included"); Assert.AreEqual("Roham.SmokeTests.dll", autoRegistration.IncludeAssemblies.Single().ManifestModule.Name, "assembly name is invalid"); } }
public void TestIncludeAssembliesFromFiles() { // given var filePath = Assembly.GetExecutingAssembly().Location; IAutoRegistration autoRegistration = null; using (var dependencyResolver = CreateSubject( (_, ar) => { // when ar .IncludeAssembliesFromFiles(new string[] { filePath }) .ApplyRegistrations(); autoRegistration = ar; })) { // then Assert.AreEqual(1, autoRegistration.IncludeAssemblies.Count(), "there should be only one assembly included"); Assert.AreEqual("Roham.SmokeTests.dll", autoRegistration.IncludeAssemblies.Single().ManifestModule.Name, "assembly name is invalid"); } }
public void TestIncludeAssembilesFromTypes() { // given IAutoRegistration autoRegistration = null; using (var dependencyResolver = CreateSubject( (_, ar) => { // when ar .IncludeAssembilesFromTypes(new List<Type> { typeof(IFoo), typeof(IBar) }) .ApplyRegistrations(); autoRegistration = ar; })) { // then Assert.AreEqual(1, autoRegistration.IncludeAssemblies.Count(), "there should be only one assembly included"); Assert.AreEqual("Roham.SmokeTests.dll", autoRegistration.IncludeAssemblies.Single().ManifestModule.Name, "assembly name is invalid"); } }
/// <summary> /// Loads assembly from given assembly file name. /// </summary> /// <param name="autoRegistration">Auto registration.</param> /// <param name="assemblyPath">Assembly path.</param> /// <returns>Auto registration</returns> public static IAutoRegistration LoadAssemblyFrom(this IAutoRegistration autoRegistration, string assemblyPath) { Assembly.LoadFrom(assemblyPath); return(autoRegistration); }
public static IAutoRegistration IncludeWellKnownITypeName(this IAutoRegistration registration, string value) { return(registration.IncludeWellKnownITypeName <TransientLifetimeManager>(value)); }