@@ -4,23 +4,35 @@ namespace NetLeaf.Bridge;
44
55public static class Assemblies
66{
7+ /// <summary>
8+ /// Represents a loaded plugin/assembly.
9+ /// </summary>
710 private class LoadedPlugin
811 {
912 public PluginLoadContext Context ;
1013 public Assembly Assembly ;
1114 public string Path ;
15+
16+ /// <summary>
17+ /// Initializes a new instance of the <see cref="LoadedPlugin"/> class.
18+ /// </summary>
19+ public LoadedPlugin ( PluginLoadContext context , Assembly assembly , string path ) => ( Context , Assembly , Path ) = ( context , assembly , path ) ;
1220 }
1321
1422 private static readonly List < LoadedPlugin > _loadedPlugins = new ( ) ;
1523
16- public static IEnumerable < Assembly > LoadedAssemblies
17- => _loadedPlugins . Select ( p => p . Assembly ) ;
24+ /// <summary>
25+ /// All currently loaded assemblies.
26+ /// </summary>
27+ public static IEnumerable < Assembly > LoadedAssemblies => _loadedPlugins . Select ( p => p . Assembly ) ;
1828
29+ /// <summary>
30+ /// Load an assembly.
31+ /// </summary>
32+ /// <param name="path">Path to the assembly.</param>
1933 public static void LoadAssembly ( string path )
2034 {
21- string fullPath = Path . IsPathRooted ( path )
22- ? path
23- : System . IO . Path . Combine ( Path . GetDirectoryName ( Assembly . GetExecutingAssembly ( ) . Location ) ?? "" , path ) ;
35+ string fullPath = Path . IsPathRooted ( path ) ? path : System . IO . Path . Combine ( Path . GetDirectoryName ( Assembly . GetExecutingAssembly ( ) . Location ) ?? "" , path ) ;
2436
2537 if ( ! File . Exists ( fullPath ) )
2638 {
@@ -31,16 +43,15 @@ public static void LoadAssembly(string path)
3143 var context = new PluginLoadContext ( fullPath ) ;
3244 var assembly = context . LoadFromAssemblyPath ( fullPath ) ;
3345
34- _loadedPlugins . Add ( new LoadedPlugin
35- {
36- Context = context ,
37- Assembly = assembly ,
38- Path = fullPath
39- } ) ;
46+ _loadedPlugins . Add ( new LoadedPlugin ( context , assembly , fullPath ) ) ;
4047
4148 Console . WriteLine ( $ "[NetLeaf] Assembly loaded: { fullPath } ") ;
4249 }
4350
51+ /// <summary>
52+ /// Unload an assembly.
53+ /// </summary>
54+ /// <param name="path">Path to the assembly.</param>
4455 public static void UnloadAssembly ( string path )
4556 {
4657 var plugin = _loadedPlugins . Find ( p => p . Path == path ) ;
0 commit comments