using JsonRPC.Protocol; using Newtonsoft.Json; namespace JsonRPC.RPC { public class Sender : AbsSingle { Func sendFunc = null!; Action errorFunc = null!; int id; public int GetId() { return Interlocked.Increment(ref id); } public void SetSendFunction(Func send) { sendFunc = send; } public bool HnadleResponseError(JsonRPCResponse response) { if(response.Error != null) { errorFunc?.Invoke(response.Error); return false; } return true; } public string Send(JsonRPCRequest request) { var reqJs = JsonConvert.SerializeObject(request); return sendFunc.Invoke(reqJs); } public T JsonDeserialize(string json) where T : JsonRPCResponse { return JsonConvert.DeserializeObject(json); } } }