4
我試圖通過hostObject派一類,但顯然它不想工作:羅斯林,傳遞值通過hostObject
using Roslyn.Compilers;
using Roslyn.Compilers.CSharp;
using Roslyn.Scripting;
using Roslyn.Scripting.CSharp;
public class ShippingService
{
public class ShippingDetails//class that I want to send
{
public decimal total { get; set; }
public int quantity { get; set; }
public string destination { get; set; }
}
public static string ShipingCost(decimal total, int quantity, string destination)
{
var details = new ShippingDetails
{
total = total,
quantity = quantity,
destination = destination
};
try
{
ScriptEngine roslynEngine = new ScriptEngine();
Roslyn.Scripting.Session session = roslynEngine.CreateSession(details);
session.AddReference(details.GetType().Assembly);
session.AddReference("System.Web");
session.ImportNamespace("System");
session.ImportNamespace("System.Web");
var result = session.Execute("details.destination");
return result;
}
catch (Exception e)
{
return e.Message;
}
return "";
}
}
當我調用該函數的目的地是例如「法國」,而我應該得到這個結果的價值,但我得到的錯誤:
Roslyn.Compilers.CompilationErrorException:(1,1):錯誤CS0103:名稱「細節」不在當前情況下存在