private Action CreateLogger(IXPDataRef dataRef) { switch (dataRef) { case IXPDataRef <int> d: return(() => Log(d)); case IXPDataRef <int[]> d: return(() => Log(d)); case IXPDataRef <bool> d: return(() => Log(d)); case IXPDataRef <bool[]> d: return(() => Log(d)); case IXPDataRef <float> d: return(() => Log(d)); case IXPDataRef <float[]> d: return(() => Log(d)); case IXPDataRef <double> d: return(() => Log(d)); case IXPDataRef <string> d: return(() => Log(d)); case IXPDataRef <byte[]> d: return(() => Log(d)); default: throw new InvalidOperationException("Unexpected dataRef type."); } }
private void Log(IXPDataRef <string> dref) => m_api.Log.Log($"LoggerPlugin: {dref.Name} = [{dref.Value}]");
private void Log(IXPDataRef <byte[]> dref) => m_api.Log.Log($"LoggerPlugin: {dref.Name} = [{BitConverter.ToString(dref.Value)}]");
private void Log(IXPDataRef <float[]> dref) => m_api.Log.Log($"LoggerPlugin: {dref.Name} = [{string.Join(", ", dref.Value)}]");