Пример #1
0
        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();
        }
Пример #2
0
        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();
        }