07-24-2023, 10:06 AM
I am trying to use a Script to evaluate custom functions
Script.js
interface ICustomClass
{
function get ConvertFloatToHex(floatValue : float) : String;
}
class CustomScriptEvaluator
{
static var CustomClass : ICustomClass;
function CustomScriptEvaluator(CustomClass : ICustomClass)
{
CustomScriptEvaluator.CustomClass = CustomClass;
}
static function Evaluate(expression : String) : String
{
return eval(expression);
}
}
I use the jsc command to get the Script.dll from the Script.js file.
Implementing the interface ICustomClass
CustomClass.cs
public class CustomClass : ICustomClass
{
public string ConvertFloatToHex(float floatValue)
{
const string hex="0";
return (hex + "h");
}
}
ScriptEvaluator.cs
public ScriptEvaluator
{
//Private Member declaration...
public static ScriptEvaluator Instance
{
get
{
if(m_instance==null)
{
m_instance = new ScriptEvaluator(ICustomClass customClass);
}
return m_instance;
}
}
private ScriptEvaluator(ICustomClass customClass)
{
CustomClass = customClass;
var instancing = new CustomScriptEvaluator(CustomClass);
}
public string Evaluate(String script)
{
return CustomScriptEvaluator.Evaluate(script);
}
}
When I am using something like:
var result = ScriptEvaluator.Instance.Evaluate("CustomClass.ConvertFloatToHex(2.5,26,12)=='0h' ");
That sentence executes correctly, no matter that the number of parameters is **wrong**. So, I would like it to send an excepcion when this happens.
Is there a way to do that?
Thanks in advance.
Script.js
interface ICustomClass
{
function get ConvertFloatToHex(floatValue : float) : String;
}
class CustomScriptEvaluator
{
static var CustomClass : ICustomClass;
function CustomScriptEvaluator(CustomClass : ICustomClass)
{
CustomScriptEvaluator.CustomClass = CustomClass;
}
static function Evaluate(expression : String) : String
{
return eval(expression);
}
}
I use the jsc command to get the Script.dll from the Script.js file.
Implementing the interface ICustomClass
CustomClass.cs
public class CustomClass : ICustomClass
{
public string ConvertFloatToHex(float floatValue)
{
const string hex="0";
return (hex + "h");
}
}
ScriptEvaluator.cs
public ScriptEvaluator
{
//Private Member declaration...
public static ScriptEvaluator Instance
{
get
{
if(m_instance==null)
{
m_instance = new ScriptEvaluator(ICustomClass customClass);
}
return m_instance;
}
}
private ScriptEvaluator(ICustomClass customClass)
{
CustomClass = customClass;
var instancing = new CustomScriptEvaluator(CustomClass);
}
public string Evaluate(String script)
{
return CustomScriptEvaluator.Evaluate(script);
}
}
When I am using something like:
var result = ScriptEvaluator.Instance.Evaluate("CustomClass.ConvertFloatToHex(2.5,26,12)=='0h' ");
That sentence executes correctly, no matter that the number of parameters is **wrong**. So, I would like it to send an excepcion when this happens.
Is there a way to do that?
Thanks in advance.