@@ -19,6 +19,9 @@ public static DotNetCompilationResult FromStream(Stream assemblyStream, Stream p
19
19
public static DotNetCompilationResult FromPath ( string assemblyPath )
20
20
=> new PathCompilationResult ( assemblyPath ) ;
21
21
22
+ public static DotNetCompilationResult FromAssemblyName ( string assemblyName )
23
+ => new AssemblyReferenceCompilationResult ( assemblyName ) ;
24
+
22
25
public abstract Assembly Load ( FunctionMetadata metadata , IFunctionMetadataResolver metadataResolver , ILogger logger ) ;
23
26
24
27
private sealed class BinaryCompilationResult : DotNetCompilationResult
@@ -85,5 +88,23 @@ public PathCompilationResult(string assemblyPath)
85
88
public override Assembly Load ( FunctionMetadata metadata , IFunctionMetadataResolver metadataResolver , ILogger logger )
86
89
=> FunctionAssemblyLoadContext . Shared . LoadFromAssemblyPath ( AssemblyPath , true ) ;
87
90
}
91
+
92
+ private sealed class AssemblyReferenceCompilationResult : DotNetCompilationResult
93
+ {
94
+ public AssemblyReferenceCompilationResult ( string assemblyName )
95
+ {
96
+ if ( string . IsNullOrWhiteSpace ( assemblyName ) )
97
+ {
98
+ throw new ArgumentException ( "Invalid assembly name string" , nameof ( assemblyName ) ) ;
99
+ }
100
+
101
+ AssemblyName = assemblyName ;
102
+ }
103
+
104
+ public string AssemblyName { get ; }
105
+
106
+ public override Assembly Load ( FunctionMetadata metadata , IFunctionMetadataResolver metadataResolver , ILogger logger )
107
+ => FunctionAssemblyLoadContext . Shared . LoadFromAssemblyName ( new AssemblyName ( AssemblyName ) ) ;
108
+ }
88
109
}
89
110
}
0 commit comments