如果我能用c#序列化一个方法对象(包括它的逻辑信息)并把它传送到远程服务器

本文关键字:服务器 信息 传送 对象 序列化 如果 方法 一个 包括它 | 更新日期: 2023-09-27 18:04:56

这里有一个场景,我想传输一个对象,它可以实现一个指定的接口,如ITask在指定格式的远程服务(字节数组?json吗?或xml ?)当服务接收并反序列化对象时,它运行指定的方法。

以下是上述场景的示例代码:

ITask:

interface ITask { void run();}

客户端逻辑代码:

void sendObj(ITask task){ 
    var content = SerializeObjectWithMethods(task);
    httpClient.send(remoteServer, content);
}

服务逻辑代码:

void receiveObj(){
    var handler = listener.Accept();
    var data = handler.Receive();
    ITask task = DeserializeObjWithMethods(data);
    task.run();
}

那么,c#可以实现上述场景吗?

p。当我阅读spark文档时,我看到它可以将任务发送到其他集群(似乎通过使用java.rmi.*),这真是一件有趣的事情。

如果我能用c#序列化一个方法对象(包括它的逻辑信息)并把它传送到远程服务器

不是序列化对象,而是序列化对象的状态。如果你的意思是发送一个远程端完全不知道的对象,除了一个已知的接口,那么我猜只是发送一个编译过的程序集,远程服务器可以使用反射来拉出ITask接口并运行它。