public static void Init() { EngineAssembly = Assembly.GetExecutingAssembly(); EngineReferences = EngineAssembly.GetReferencedAssemblies(); EngineTypes = EngineAssembly.GetTypes(); /* * var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies(); * * //Attempt to load assemblies that are referenced, but weren't loaded yet. * foreach(var assembly in loadedAssemblies) { * var references = assembly.GetReferencedAssemblies(); * * foreach(var reference in references) { * if(!loadedAssemblies.Any(a => a.GetName() == reference)) { * try { * Assembly.Load(reference); * } * catch { } * } * } * }*/ var assemblies = AppDomain.CurrentDomain .GetAssemblies() .Where(a => !a.IsDynamic && !a.GetName().Name.StartsWith("System.") && !EngineReferences.Any(r => r.Name.Equals(a.GetName().Name))).ToList(); assemblies.Remove(EngineAssembly); assemblies.Insert(0, EngineAssembly); AllAssemblies = assemblies.ToArray(); AllTypes = AllAssemblies.SelectMany(a => a.GetTypes()).ToArray(); }
protected TypesDeserializationTest() { TypesCache = AllAssemblies.SelectMany(a => a.GetTypes()) .SelectMany(t => t.GetNestedTypes(BindingFlags.Public | BindingFlags.NonPublic).Union(new[] { t })) .Where(t => t != null) .Distinct() .ToArray(); _excludes = new HashSet <Type>(ExcludeTypes); Fixture = new Fixture(); }