Я написал код для своей игры, который должен запускать функцию моего кода Python. Я использую Ironpython для своего проекта. Однако, когда я пытаюсь использовать динамическую типизацию С# для вызова функции в приведенном ниже коде, она компилируется, но я получаю следующую ошибку от внутренних компонентов:
" Assets/Scripts/WordSearchAlgorithm.cs(37,29): ошибка CS1502: лучший перегруженный метод соответствует
System.Runtime.CompilerServices.CallSite,object>>.Create(System.Runtime.CompilerServices.CallSiteBinder)' имеет некоторые недопустимые аргументы " "
Assets/Scripts/WordSearchAlgorithm.cs(37,29): ошибка CS1503: Аргумент
'#1' не может преобразовать выражение 'object' в тип
'System.Runtime.CompilerServices. CallSiteBinder' " "
Assets/Scripts/WordSearchAlgorithm.cs(37,61): ошибка CS0234: имя типа
или пространства имен "RuntimeBinder" не существует в пространстве имен
"Microsoft.CSharp". вам не хватает ссылки на сборку?"
Assets/Scripts/WordSearchAlgorithm.cs(37,61): ошибка CS1502: лучший
перегруженный метод, соответствующий 'System.Runtime.CompilerServices.CallSite>.Create(System.Runtime .CompilerServices.CallSiteBinder) имеет недопустимые аргументы.
Я думаю, что моно не поддерживает это. Не могли бы вы дать мне решение, чтобы помочь мне?
static public void StartSearchAlgorithm()
{
List < string > myList = new List < string > ()
{
"fxie",
"amlo",
"ewbx",
"astu"
};
var ironPythonRuntime = Python.CreateRuntime();
try
{
//Load the Iron Python file/script into the memory
//Should be resolve at runtime
dynamic loadIPython = ironPythonRuntime.UseFile("C:/py.py");
//Invoke the method and print the result
loadIPython.BoggleWords(myList, loadIPython.MakeTrie("C:/words.txt")); // here is my problem to calling function from python that unity logError
// Debug.Log(string.Format("dd", loadIPython.BoggleWords(myList, loadIPython.MakeTrie("C:/words.txt"))));
}
catch (FileNotFoundException ex)
{}
}