diff --git a/ElectronNET.API/IpcMain.cs b/ElectronNET.API/IpcMain.cs index 42d31cb..0beedfd 100644 --- a/ElectronNET.API/IpcMain.cs +++ b/ElectronNET.API/IpcMain.cs @@ -173,34 +173,28 @@ namespace ElectronNET.API /// Arguments data. public void Send(BrowserWindow browserWindow, string channel, params object[] data) { - List jobjects = new List(); - List jarrays = new List(); - List objects = new List(); + var objectsWithCorrectSerialization = new List(); + + objectsWithCorrectSerialization.Add(browserWindow.Id); + objectsWithCorrectSerialization.Add(channel); foreach (var parameterObject in data) { if(parameterObject.GetType().IsArray || parameterObject.GetType().IsGenericType && parameterObject is IEnumerable) { - jarrays.Add(JArray.FromObject(parameterObject, _jsonSerializer)); + objectsWithCorrectSerialization.Add(JArray.FromObject(parameterObject, _jsonSerializer)); } else if(parameterObject.GetType().IsClass && !parameterObject.GetType().IsPrimitive && !(parameterObject is string)) { - jobjects.Add(JObject.FromObject(parameterObject, _jsonSerializer)); + objectsWithCorrectSerialization.Add(JObject.FromObject(parameterObject, _jsonSerializer)); } else if(parameterObject.GetType().IsPrimitive || (parameterObject is string)) { - objects.Add(parameterObject); + objectsWithCorrectSerialization.Add(parameterObject); } } - if(jobjects.Count > 0 || jarrays.Count > 0) - { - BridgeConnector.Emit("sendToIpcRenderer", browserWindow.Id, channel, jarrays.ToArray(), jobjects.ToArray(), objects.ToArray()); - } - else - { - BridgeConnector.Emit("sendToIpcRenderer", browserWindow.Id, channel, data); - } + BridgeConnector.Emit("sendToIpcRenderer", objectsWithCorrectSerialization.ToArray()); } /// diff --git a/ElectronNET.Host/api/ipc.js b/ElectronNET.Host/api/ipc.js index a8e10fe..ec17143 100644 --- a/ElectronNET.Host/api/ipc.js +++ b/ElectronNET.Host/api/ipc.js @@ -40,6 +40,7 @@ module.exports = (socket) => { }); socket.on('sendToIpcRenderer', (browserWindowId, channel, ...data) => { const window = electron_1.BrowserWindow.fromId(browserWindowId); + console.log(data); if (window) { window.webContents.send(channel, ...data); }