Я перехожу из C++ в C#, и у меня есть вызов метода, который меня сбивает с толку. Я думаю, я мог бы догадаться, что он делает, но я ценю эксперт просто говорю мне прямо:MethodBase.GetCurrentMethod() строка рефлексии
WDResult returnValue = (WDResult)Invoke(
(MethodInfo)MethodBase.GetCurrentMethod(),
new object[] { request, loadType });
Он смотрит на меня, как он использует отражение в infoke метода, который уже вызван. Я не понимаю, почему это можно сделать, если это так. Кроме того, почему вы делаете это с помощью рефлексии, а не только для рекурсивного вызова? Обратите внимание, что в коде другая перегрузка не используется в вызове. Запросы параметров и loadType в значительной степени передаются прямо в этот код в первой строке функции, в которой он появляется.
Спасибо, что нашел :) –
Из любопытства, что это было? – SLaks
Его называют во многих местах. Он выполняет любую команду в вызывающей функции и обрабатывает ее общим способом для zip-аргументов (они большие), обеспечения шифрования и отправки в rpc api. Я не совсем уверен, что он был предназначен в оригинальном дизайне, хотя он больше похож на патч-обложку - все функции были отправлены на этот, и параметры позволяют этому обрабатывать динамический запрос с первоначальным запросом, предоставляя сжатия/шифрования/диспетчеризация. Я предполагаю, что RPC api не использовался, и это были ранее локальные вызовы. –