Есть две программы Server и Client. Client знает о функциях сервера и хочет их вызвать.
Код ниже это просто пример того, что хотелось бы получить. У меня три вопроса: Можно ли запаковать вызов функции вместе с аргументами, затем передать и выполнить.
Код клиента:
class Client{
public Server.MyType UserFnc(string data, int data2){ //Функция вызываемая пользователем
object packedFnc = Server.UsefullFnc(data, data2); //Запакуем вызов функции которая есть на сервере
var result = (Server.MyType)CallFnc(obj); //Получим результат
return result; //Вернем результат пользователю
}
public object CallFnc(object obj){ // Функция отправки "вызова функции" серверу
MemoryMappedFile.Write(obj); //записали obj в память и ждем
//Wait for ReturnFnc
object result = MemoryMappedFile.Read(); // дождались ответа, считываем и возвращаем результат
return result;
}
}
Код сервера
class Server{
public void ReturnFnc{
var cFnc = MemoryMappedFile.Read(); //Читаем вызов ф-ии
var result = cFnc.invoke(); //выполняем UsefullFnc, получаем результат
MemoryMappedFile.Write(result); //отправляем рузельтат
}
public MyType UsefullFnc(string data, int data2){ //Делает нечто полезное
var result = new MyType(data, data2);
return result;
}
}
Нашел ответ по ссылке stackoverflow
class Program
{
static void Main(string[] args)
{
var obj = new object(); // Replace here with your object
var type = obj.GetType();
var methodInfo = type.GetMethod(methodName);
// Invoke the method here
methodInfo.Invoke(obj, null);
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть проект, назовём его testProject и есть проект Unittest нужно что бы проект Unittest видел папку Models из проекта testProject, как это сделать?
Пытаюсь создать ManagementObject и выполнить какой-то его методПопытка номер 1: