Can't this be more DRY?

```csharp
ExecuteCallback(string eventName, int actualArgs, int expectedArgs, Action action)
{
      if(expectedArgs != actualArgs)
      {
          throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, Resources.Error_ClientCallbackInvalidNumberOfArguments, eventName, actualArgs));
      }
      
      try
      {
          action();
      }
      catch(JsonReaderException ex)
      {
throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, Resources.Error_ClientCallbackArgumentTypeMismatch, eventName, actualArgs, ex.Message));
      }
}

ExecuteCallback(eventName, args.Count, 1, () => {
     onData(Convert<T>(args[0], proxy.JsonSerializer));
});

```