/// <summary> /// Echo generic request. /// </summary> /// <param name="input">service request</param> /// <returns>the echo response</returns> public GenericServiceResponse EchoGeneric(GenericServiceRequest input) { Debug.WriteLine(input.Data); Console.WriteLine(input.Data); ServiceContext.Logger.TraceInformation("EchoGeneric: Generic service request data = {0}", input.Data); GenericServiceResponse resp = new GenericServiceResponse(); resp.Data = Environment.MachineName + " (GenericService): " + input.Data; return(resp); }
private static void V3ClientSample(SessionStartInfo startInfo) { using (DurableSession session = DurableSession.CreateSession(startInfo)) { using (BrokerClient <IGenericServiceV3> client = new BrokerClient <IGenericServiceV3>(session)) { GenericServiceRequest request1 = new GenericServiceRequest(); using (MemoryStream ms = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(ms)) { writer.Write((int)0); writer.Write((int)123); } request1.Data = Convert.ToBase64String(ms.ToArray()); } // Use user data to differentiate operations // 0 stands for GetData() // 1 stands for GetDataUsingDataContract() client.SendRequest <GenericServiceRequest>(request1, 0); GenericServiceRequest request2 = new GenericServiceRequest(); using (MemoryStream ms = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(ms)) { writer.Write((int)1); writer.Write(true); writer.Write("DataData"); } request2.Data = Convert.ToBase64String(ms.ToArray()); } client.SendRequest <GenericServiceRequest>(request2, 1); client.EndRequests(); foreach (BrokerResponse <GenericServiceResponse> response in client.GetResponses <GenericServiceResponse>()) { int operationIndex = response.GetUserData <int>(); switch (operationIndex) { case 0: // GetData Console.WriteLine("GetDataResult: {0}", response.Result.Data); break; case 1: // GetDataUsingDataContract CompositeType result; using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(response.Result.Data))) using (BinaryReader reader = new BinaryReader(ms)) { result = new CompositeType(); result.BoolValue = reader.ReadBoolean(); result.StringValue = reader.ReadString(); } Console.WriteLine("GetDataUsingDataContractResult: BoolValue={0}\tStringValue={1}", result.BoolValue, result.StringValue); break; } } } session.Close(); } }