Einzelnen Beitrag anzeigen

QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.926 Beiträge
 
Delphi 12 Athens
 
#9

AW: Wieder generische Functions results

  Alt 15. Mai 2019, 12:20
Benutze Supports um das Interface auf den richtigen Typ zu casten. Das funktioniert bei uns problemlos, wir machen etwas ähnliches.

// EDIT:
THTTPRIO implementiert doch IInvokable gar nicht.
Delphi generiert sowas für webservices
Delphi-Quellcode:
function GetWSClient(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): IWSClient;
const
  defWSDL = 'C:\IWSClient.xml';
  defURL = 'http://localhost:80/soap/IWSClient';
  defSvc = 'IWSClient';
  defPrt = 'IWSClient_Port';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as IWSClient);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;
Ich habe nur alles entfernt was ich nicht brauche und das interface durch <T> ersetzt
die Interfaces aus der generierten datei sind von IInvokable abgeleitet ...allerdings scheint das auch nur ein Alias für IInterface zu sein....

Ich versuche es mal mit supports und gebe feedback.
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (15. Mai 2019 um 12:44 Uhr)
  Mit Zitat antworten Zitat