Skip to content

Commit

Permalink
minor optimization
Browse files Browse the repository at this point in the history
  • Loading branch information
いえない committed Aug 26, 2020
1 parent 3de1876 commit 5d545f6
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions Bililive_dm/App.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,14 @@ private void AddArchSpecificDirectory()

private void Application_Startup(object sender, StartupEventArgs e)
{
var ms = new MemoryStream();
var assemblies = new Dictionary<string, Assembly>(StringComparer.OrdinalIgnoreCase);

AppDomain.CurrentDomain.AssemblyResolve += (_, args) =>
{
var name = new AssemblyName(args.Name);
var an = new AssemblyName(args.Name);
var name = an.Name;
switch (name.Name)
switch (name)
{
case "PresentationTheme.Aero":
case "PresentationTheme.Aero.Win8":
Expand All @@ -108,16 +109,18 @@ private void Application_Startup(object sender, StartupEventArgs e)
return null;
}
if (assemblies.TryGetValue(name, out var assembly)) return assembly;
ms.Position = 0;
using (var rs = Assembly.GetExecutingAssembly().GetManifestResourceStream($"Bililive_dm.Assets.{name.Name}.dll.gz"))
var ms = new MemoryStream();
using (var rs = Assembly.GetExecutingAssembly().GetManifestResourceStream($"Bililive_dm.Assets.{name}.dll.gz"))
using (var zs = new GZipStream(rs, CompressionMode.Decompress))
zs.CopyTo(ms);
var data = new byte[ms.Position];
var data = new byte[ms.Length];
ms.Position = 0;
ms.Read(data, 0, data.Length);
return Assembly.Load(data);
return assemblies[name] = Assembly.Load(data);
};

AeroWin8 = (ResourceDictionary)Resources["Win8"];
Expand Down

0 comments on commit 5d545f6

Please sign in to comment.