DynamicScriptRunner 1.5.5
dotnet add package DynamicScriptRunner --version 1.5.5
NuGet\Install-Package DynamicScriptRunner -Version 1.5.5
<PackageReference Include="DynamicScriptRunner" Version="1.5.5" />
<PackageVersion Include="DynamicScriptRunner" Version="1.5.5" />
<PackageReference Include="DynamicScriptRunner" />
paket add DynamicScriptRunner --version 1.5.5
#r "nuget: DynamicScriptRunner, 1.5.5"
#:package DynamicScriptRunner@1.5.5
#addin nuget:?package=DynamicScriptRunner&version=1.5.5
#tool nuget:?package=DynamicScriptRunner&version=1.5.5
DynamicScriptRunner
<img src="https://www.nuget.org/Content/gallery/img/logo-header.svg?sanitize=true" height="30px">
Enables runtime execution of C#/VB.NET scripts without pre-compilation. Supports Func delegate generation, DLLs, flexible run options, and async capabilities.
Download
DynamicScriptRunner is available as Nuget Package now.
Getting started
Hello World
string codeHelloWorld = @"
using System;
class Run
{
public void Main()
{
Console.WriteLine(""Hello World"");
}
}
";
DynamicScriptRunner.ScriptRunner.Run(codeHelloWorld); // Hello World
If you want to hold an InstanceObject
string codeStatic = @"
using System;
public static class Run
{
public static int count = 1;
public static void Main()
{
Console.WriteLine(""Hello World Static: "" + count++);
}
}
";
RunOption runOptionStatic = new RunOption() { IsStatic = true };
runOptionStatic.InstanceObject = new InstanceObject(codeStatic, runOptionStatic);
ScriptRunner.Run(runOptionStatic); // Hello World Static: 1
ScriptRunner.Run(runOptionStatic); // Hello World Static: 2
If you want to create delegate
string codeDelegateHelloWorld = @"
using System;
public class Run
{
public string DelegateHelloWorldFunc()
{
return ""Delegate Hello World"";
}
}
";
var DelegateHelloWorldFunc = DynamicScriptRunner.ScriptRunner.GenerateFunc<string>(codeDelegateHelloWorld, new RunOption() { MethodName = "DelegateHelloWorldFunc" });
Console.WriteLine(DelegateHelloWorldFunc(null)); // Delegate Hello World
If you only want to write functions and don't want to write using statement
string codeGenerateClassWithFunction = @"
public ExternalResultClass DoSth()
{
return ExternalClass.DoSth();
}
";
RunOption generateClassWithFunctionOption = new RunOption();
generateClassWithFunctionOption.ExtraDllFileList = new List<string> { "ExternalDll.dll" };
generateClassWithFunctionOption.MethodName = "DoSth";
string codeGeneratedClassWithFunction = ScriptRunner.GenerateClassWithFunction(codeGenerateClassWithFunction, generateClassWithFunctionOption);
API
ScriptRunner
object Run(string code, RunOption runOption = null)
Task<object> RunAsync(string code, RunOption runOption = null)
object Run(ICollection<string> codeList, RunOption runOption = null)
Task<object> RunAsync(ICollection<string> codeList, RunOption runOption = null)
object Run(RunOption runOption)
Task<object> RunAsync(RunOption runOption)
Func<object[], object> GenerateFunc(string code, RunOption runOption = null)
Func<object[], object> GenerateFunc(RunOption runOption)
Func<object[], TResult> GenerateFunc<TResult>(string code, RunOption runOption = null)
Func<object[], TResult> GenerateFunc<TResult>(RunOption runOption)
Func<T1, TResult> GenerateFunc<T1, TResult>(string code, RunOption runOption = null)
Func<T1, TResult> GenerateFunc<T1, TResult>(RunOption runOption)
Func<T1, T2, TResult> GenerateFunc<T1, T2, TResult>(string code, RunOption runOption = null)
Func<T1, T2, TResult> GenerateFunc<T1, T2, TResult>(RunOption runOption)
Func<T1, T2, T3, TResult> GenerateFunc<T1, T2, T3, TResult>(string code, RunOption runOption = null)
Func<T1, T2, T3, TResult> GenerateFunc<T1, T2, T3, TResult>(RunOption runOption)
Func<T1, T2, T3, T4, TResult> GenerateFunc<T1, T2, T3, T4, TResult>(string code, RunOption runOption = null)
Func<T1, T2, T3, T4, TResult> GenerateFunc<T1, T2, T3, T4, TResult>(RunOption runOption)
Func<T1, T2, T3, T4, T5, TResult> GenerateFunc<T1, T2, T3, T4, T5, TResult>(string code, RunOption runOption = null)
Func<T1, T2, T3, T4, T5, TResult> GenerateFunc<T1, T2, T3, T4, T5, TResult>(RunOption runOption)
Func<T1, T2, T3, T4, T5, T6, TResult> GenerateFunc<T1, T2, T3, T4, T5, T6, TResult>(string code, RunOption runOption = null)
Func<T1, T2, T3, T4, T5, T6, TResult> GenerateFunc<T1, T2, T3, T4, T5, T6, TResult>(RunOption runOption)
Func<T1, T2, T3, T4, T5, T6, T7, TResult> GenerateFunc<T1, T2, T3, T4, T5, T6, T7, TResult>(string code, RunOption runOption = null)
Func<T1, T2, T3, T4, T5, T6, T7, TResult> GenerateFunc<T1, T2, T3, T4, T5, T6, T7, TResult>(RunOption runOption)
Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult> GenerateFunc<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(string code, RunOption runOption = null)
Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult> GenerateFunc<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(RunOption runOption)
Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult> GenerateFunc<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(string code, RunOption runOption = null)
Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult> GenerateFunc<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(RunOption runOption)
Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult> GenerateFunc<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>(string code, RunOption runOption = null)
Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult> GenerateFunc<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>(RunOption runOption)
string GenerateClassWithFunction(string code, RunOption runOption = null)
string GenerateClassWithFunction(string code, ICollection<string> extraDllNamespaces, RunOption runOption = null)
DllHelper
FileSystemInfo[] GetDllInfos(string path)
ICollection<string> GetExtraDllNamespaces(RunOption runOption)
InstanceObject
InstanceObject
InstanceObject(string code, RunOption runOption = null)
InstanceObject(ICollection<string> codeList, RunOption runOption = null)
Options
RunOption
RunOption(object[] paramList = null
, ICollection<string> extraDllFolderList = null
, ICollection<string> extraDllFileList = null
, string methodName = "Main"
, string className = "Run"
, InstanceObject instanceObject = null
, ScriptLanguage scriptLanguage = ScriptLanguage.CSharp
, bool nonPublic = false
, bool isStatic = false
, bool addDefaultUsingWhenGeneratingClass = true
, bool addExtraUsingWhenGeneratingClass = true)
object[] paramList;
ICollection<string> extraDllFolderList;
ICollection<string> extraDllFileList;
string methodName;
string className;
InstanceObject instanceObject;
ScriptLanguage scriptLanguage;
bool nonPublic;
bool isStatic;
bool addDefaultUsingWhenGeneratingClass;
bool addExtraUsingWhenGeneratingClass;
ScriptLanguage
- CSharp
- VisualBasic
Useage
DynamicScriptRunner.RunOption runOption = new DynamicScriptRunner.RunOption(...);
DynamicScriptRunner.ScriptRunner.Run(code, runOption);
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- Microsoft.CodeAnalysis.CSharp (>= 4.4.0)
- Microsoft.CodeAnalysis.VisualBasic (>= 4.4.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|