Короче говоря, я хочу реализовать JSONRPC2 api для Unity3d (mono) на сервере NodeJS.C# Динамическая подпись для RPC
Я довольно новичок в C#, и я чувствую, что то, что я ищу, вряд ли возможно.
В настоящее время я могу сделать что-то вроде этого:
JSONRequest request = new JSONRequest();
JSONNode jsonParams = new JSONNode();
....
request.params = jsonParams;
socket.Send(request.toJSON());
Как вы можете видеть, что делает вызов к RPC является довольно громоздким, печатая все это занимает некоторое время.
То, что я хотел бы иметь что-то вроде этого:
req = rpc.call('add', 1, 2);
req.success += SuccessCallback
req.error += ErrorCallback
Поскольку C# не допускает динамическую подпись, я должен был бы задать подпись для каждого возможного типа как
запрос вызов (строковый метод, Int а, внутр б) Запрос вызова (метод строка, строка а, ИНТ б) ...
Итак, сегодня я пришел с этой идеей, которая бы сделать вещи проще писать и довольно близко к что бы я хотел, вместо па ssing, я бы передал метод обратного вызова, который строит параметры. Затем результат будет сериализован.
rpc.call("add",() => [1, 2])
Но я предполагаю, что это не помогает, потому что делегат все еще должен иметь определенный тип возврата, который не приносит мне нигде.
Как я могу это сделать?
Это звучит так же, как то, что я искал. Правильно ли я считаю, что это похоже на многоточие в C/C++? –
@ LoïcFaure-Lacroix Да, это очень похоже, только с расширением возможности указать ограничение типа (и это обычный массив C#, а не необходимость какой-либо специальной обработки). –
Отлично работает. Я могу закончить свою первую реализацию jsonrpc2. –