anchor.diff:    Next: PNextInvokeHandler;
   begin
     FullName := GetFullName(AName);
  -  ASettings.ResultType := TypeInfo(T);
  -  Context := TClientContext.Create(Self, ASettings);
  +  if ASettings = nil then
  +    Context := TClientContext.Create(Self, TInvokeSettings.Create(['ResultType', TypeInfo(T)]))
  +  else begin
  +    ASettings.ResultType := TypeInfo(T);
  +    Context := TClientContext.Create(Self, ASettings);
  +  end;
     Handler := FHandlers.InvokeHandler^.Handler;
     Next := FHandlers.InvokeHandler^.Next;
  -  Result := Self.VariantTo<T>(Handler(FullName, Args, Context, Next));
  -  FreeAndNil(Context);
  +  try
  +    Result := Self.VarTo<T>(Handler(FullName, Args, Context, Next));
  +  finally
  +    FreeAndNil(Context);
  +  end;
   end;
   
   procedure THproseClient.Invoke<T>(const AName: string;
  
positive.code:     function GetFullName(const AName: string): string;
      procedure SetURI(const AValue: string);
  {$IFDEF SUPPORTS_GENERICS}
      function VariantTo<T>(const AValue: Variant): T;
  {$ENDIF}
    protected
      procedure InitURI(const AValue: string); virtual;
  
negative.code:  *                                                        *
   * hprose client unit for delphi.                         *
   *                                                        *
   * LastModified: Nov 21, 2016                             *
   * Author: Ma Bingyao <andot@hprose.com>                  *
   *                                                        *
  \**********************************************************/
  