protected override void Dispose(bool managed)
 {
     AppDomain.AssemblyLoad -= AppDomain_AssemblyLoad;
     Libraries?.Clear();
     Libraries = null;
     base.Dispose(managed);
 }
 protected override void Init()
 {
     librariesObserver       = (Libraries = new LibrarySet()).Observe <Guid, Library>(Library_Added, Library_Removed);
     AppDomain.AssemblyLoad += AppDomain_AssemblyLoad;
     Libraries.Add(AppDomain.GetAssemblies().Select(Library.FromAssembly));
 }