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;
            }
        }
示例#2
0
        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));
 }