예제 #1
0
 public static void RegisterAssembly(Assembly assembly)
 {
     if (ready)
     {
         OnAssemblyRegistered?.Invoke(assembly, assembly.GetTypes());
     }
     else
     {
         Assemblies.Add(new WeakReference <Assembly>(assembly));
     }
 }
예제 #2
0
        protected override void Init()
        {
            RegisterAssembly(GetType().Assembly);
            RegisterAssembly(Game.GetType().Assembly);

            ready = true;

            for (int i = 0; i < Assemblies.Count; i++)
            {
                var weakRef = Assemblies[i];

                if (!weakRef.TryGetTarget(out var assembly))
                {
                    Assemblies.RemoveAt(i--);
                    continue;
                }

                OnAssemblyRegistered?.Invoke(assembly, assembly.GetTypes());
            }
        }