private ViewResult InvokeViewShared(string viewType, object model = null, string viewName = null)
 {
     Stack parameters = new Stack();
     if (model == null)
     {
         if (viewName == null)
         {
         }
         else 
         {
             parameters.Push(viewName);
         }
     }
     else
     {
         if (viewName == null)
         {
             parameters.Push(model);
         }
         else
         {
             parameters.Push(viewName);
             parameters.Push(model);
         } 
     }
     return (ViewResult)_controller.GetType().GetMethod(viewType, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic, null, parameters.Cast<Object>().Select(p => p.GetType()).ToArray(), null).Invoke(_controller, parameters.ToArray());
 }