public byte[] SetObjects(Guid version, byte[] msg, ObjectNotificationRequest[] notificationRequests) { return MakeRequest(SetObjectsUri, reqStream => { reqStream.Write(version); reqStream.Write(msg); reqStream.Write(notificationRequests); }); }
public byte[] InvokeServerMethod(out byte[] retChangedObjects, Guid version, SerializableType type, int ID, string method, SerializableType[] parameterTypes, byte[] parameter, byte[] changedObjects, ObjectNotificationRequest[] notificationRequests) { if (type == null) throw new ArgumentNullException("type"); var req = InitializeRequest(InvokeServerMethodUri); using (var reqStream = req.GetRequestStream()) using (var reqWriter = _writerFactory.Invoke(new BinaryWriter(reqStream))) { reqWriter.Write(version); reqWriter.Write(type); reqWriter.Write(ID); reqWriter.Write(method); reqWriter.Write(parameterTypes); reqWriter.Write(parameter); reqWriter.Write(changedObjects); reqWriter.Write(notificationRequests); } try { using (var response = req.GetResponse()) using (var input = response.GetResponseStream()) using (var reader = _readerFactory.Invoke(new BinaryReader(input))) { reader.Read(out retChangedObjects); return reader.ReadByteArray(); } } catch (WebException ex) { var errorMsg = String.Format("Error when accessing server({0}): {1}: {2}", InvokeServerMethodUri, ex.Status, ex.Response); Log.Error(errorMsg); throw new ApplicationException(errorMsg, ex); } }