private void OnRibbonPostBack(RibbonMethodPostBackEventArgs eventArgs) { if (eventArgs == null) { return; } if (string.IsNullOrEmpty(eventArgs.MethodName)) { return; } try { var method = GetType().GetMethod(eventArgs.MethodName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); method.Invoke(this, new object[] { eventArgs.Arguments }); } catch (Exception ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }
private static string SerializePostBackEvent(RibbonMethodPostBackEventArgs arguments) { if (arguments == null) { throw new ArgumentNullException("arguments"); } var serializer = new DataContractJsonSerializer(typeof(RibbonMethodPostBackEventArgs)); using (var stream = new MemoryStream()) { serializer.WriteObject(stream, arguments); return(Encoding.UTF8.GetString(stream.GetBuffer(), 0, (int)stream.Length)); } }
public void RaisePostBackEvent(string eventArgument) { OnRibbonPostBack(RibbonMethodPostBackEventArgs.Deserialize(eventArgument)); }