forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   С# (http://forum.boolean.name/forumdisplay.php?f=128)
-   -   Ambiguous match found (http://forum.boolean.name/showthread.php?t=16589)

Nerd 03.04.2012 23:20

Ambiguous match found
 
Ориентируясь на этот пример:
Код:

class Program
{
    static void Main(string[] args)
  {
        Program program = new Program();
 
      Lua lua = new Lua();
 
      //Register our C# functions
      lua.RegisterFunction("SomeFunc" , program, program.GetType().GetMethod("SomeFunc" ));
...

Пишу у себя:
Код:

...
        public static Xors3d xors3d = new Xors3d();

        public static void PatchLua(Lua lua)
        {
          lua.RegisterFunction("LoadAnimMesh",xors3d,xors3d.GetType().GetMethod("LoadAnimMesh"));
          ...
        }

На что во время исполнения получаю "Ambiguous match found".
Что я делаю не так?

Nerd 03.04.2012 23:28

Удолить!
 
Всё, разобрался.
Это GetMethod не нравится, что юзается перегрузка.
Прийдётся весь враппер ксорса переписывать :(

pax 04.04.2012 08:42

Ответ: Ambiguous match found
 
Да собственно шарп можно компилировать в рантайме (аля скрипты), но у тебя проблема другая.

Тебе надо использовать вот этот вариант GetMethod
http://msdn.microsoft.com/ru-ru/library/6hy0h0z1.aspx
с передачей массива принимаемых функцией типов аргументов (чтобы указать какой именно метод ты хочешь использовать). Вероятно в xors есть несколько функций с одинаковым именем LoadAnimMesh, но с разным набором параметров.

Ничего переписывать не надо.


Часовой пояс GMT +4, время: 19:19.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot