/// <summary>
        /// Запускает выполнение запроса <paramref name="activityStartQuery"/> с указанными параметрами в новой задаче.
        /// </summary>
        /// <typeparam name="TResult">Тип результата операции.</typeparam>
        /// <param name="activityStartQuery">Запрос на поиск операции.</param>
        public static Task <Response <TResult> > Run <TResult>(this IRequestStart <IActivityBase <TResult> > activityStartQuery)
        {
            if (!(activityStartQuery is RequestBase))
            {
                throw new InvalidOperationException("Некорректный тип запроса.");
            }

            var query2 = activityStartQuery as RequestBase;

            if (TraceStudio.Utils.Types.TypeHelpers.ExtractGenericInterface(query2.activityType, typeof(IActivityInstant <>)) != null)
            {
                return((Task <Response <TResult> >)InternalExecute(activityStartQuery, GetClientDispatcherMethod(() => RequestClientDispatcher.RunAndClose <IActivityInstant <TResult>, TResult>(dx => dx.ToString())), typeof(TResult)));
            }
            else if (TraceStudio.Utils.Types.TypeHelpers.ExtractGenericInterface(query2.activityType, typeof(IActivityLong <>)) != null)
            {
                return((Task <Response <TResult> >)InternalExecute(activityStartQuery, GetClientDispatcherMethod(() => RequestClientDispatcher.Run <IActivityLong <TResult>, TResult>(dx => dx.ToString())), typeof(TResult)));
            }
            else
            {
                throw new InvalidOperationException("Не удается опознать тип операции.");
            }
        }
 /// <summary>
 /// Запускает выполнение запроса <paramref name="activityStartQuery"/> с указанными параметрами в новой задаче.
 /// </summary>
 /// <typeparam name="TResult">Тип результата операции.</typeparam>
 /// <typeparam name="TCallResult">Тип возвращаемого значения в методе дополнительного вызова.</typeparam>
 /// <param name="activityStartQuery">Запрос на поиск операции.</param>
 public static Task <Response <TResult, TCallResult> > Run <TResult, TCallResult>(this IRequestStart <IActivityInstant <TResult>, TCallResult> activityStartQuery)
 {
     return((Task <Response <TResult, TCallResult> >)InternalExecute(activityStartQuery, GetClientDispatcherMethod(() => RequestClientDispatcher.RunAndClose <IActivityInstant <TResult>, TResult, string>(dx => dx.ToString())), typeof(TResult), typeof(TCallResult)));
 }
 /// <summary>
 /// Запускает выполнение запроса <paramref name="activityStartQuery"/> с указанными параметрами в новой задаче.
 /// </summary>
 /// <typeparam name="TResult">Тип результата операции.</typeparam>
 /// <typeparam name="TState">Тип состояния операции.</typeparam>
 /// <param name="activityStartQuery">Запрос на поиск операции.</param>
 public static Task <ResponseForLongState <TResult, TState> > Run <TResult, TState>(this IRequestStart <IActivityLong <TResult, TState> > activityStartQuery)
 {
     return((Task <ResponseForLongState <TResult, TState> >)InternalExecute(activityStartQuery, GetClientDispatcherMethod(() => RequestClientDispatcher.Run <IActivityLong <TResult, TState>, TResult, TState>(dx => dx.ToString())), typeof(TResult), typeof(TState)));
 }