Browse Source

Implement API to reload loaded nuget assemblies.

pull/870/head
Siegfried Pammer 8 years ago
parent
commit
bb381327ac
  1. 25
      ILSpy/AssemblyList.cs
  2. 4
      ILSpy/MainWindow.xaml.cs

25
ILSpy/AssemblyList.cs

@ -138,12 +138,33 @@ namespace ICSharpCode.ILSpy @@ -138,12 +138,33 @@ namespace ICSharpCode.ILSpy
assemblyLookupCache.Clear();
winRTMetadataLookupCache.Clear();
}
public LoadedAssembly Open(string assemblyUri, bool isAutoLoaded = false)
{
if (assemblyUri.StartsWith("nupkg://", StringComparison.OrdinalIgnoreCase)) {
string fileName = assemblyUri.Substring("nupkg://".Length);
int separator = fileName.LastIndexOf(';');
string componentName = null;
if (separator > -1) {
componentName = fileName.Substring(separator + 1);
fileName = fileName.Substring(0, separator);
LoadedNugetPackage package = new LoadedNugetPackage(fileName);
var entry = package.Entries.FirstOrDefault(e => e.Name == componentName);
if (entry != null) {
return OpenAssembly(assemblyUri, entry.Stream, true);
}
}
return null;
} else {
return OpenAssembly(assemblyUri, isAutoLoaded);
}
}
/// <summary>
/// Opens an assembly from disk.
/// Returns the existing assembly node if it is already loaded.
/// </summary>
public LoadedAssembly OpenAssembly(string file, bool isAutoLoaded=false)
public LoadedAssembly OpenAssembly(string file, bool isAutoLoaded = false)
{
App.Current.Dispatcher.VerifyAccess();

4
ILSpy/MainWindow.xaml.cs

@ -350,8 +350,8 @@ namespace ICSharpCode.ILSpy @@ -350,8 +350,8 @@ namespace ICSharpCode.ILSpy
SharpTreeNode node = null;
if (sessionSettings.ActiveTreeViewPath != null) {
node = FindNodeByPath(sessionSettings.ActiveTreeViewPath, true);
if (node == this.assemblyListTreeNode & sessionSettings.ActiveAutoLoadedAssembly != null) {
this.assemblyList.OpenAssembly(sessionSettings.ActiveAutoLoadedAssembly, true);
if (node == this.assemblyListTreeNode && sessionSettings.ActiveAutoLoadedAssembly != null) {
this.assemblyList.Open(sessionSettings.ActiveAutoLoadedAssembly, true);
node = FindNodeByPath(sessionSettings.ActiveTreeViewPath, true);
}
}

Loading…
Cancel
Save