📄 soappasinv2.pas
字号:
unit SOAPPasInv2;
interface
uses
Classes, InvokeRegistry, SOAPPasInv;
type
TSoapPascalInvokerProvidingInvoker = class(TSoapPascalInvoker)
public
class procedure AdjustSOAPHeaders(aSelf: TSoapPascalInvoker);
class function GetInvoker(aClass: TInvokableClass): TSoapPascalInvoker;
end;
THeaderListWithInvoker = class(THeaderList)
protected
fInvoker: TSoapPascalInvoker;
end;
implementation
type
TInvokableClassCrack = class(TInvokableClass)
end;
TSOAPHeadersBaseCrack = class(TSOAPHeadersBase)
end;
{ TSoapPascalInvokerProvidingInvoker }
class function TSoapPascalInvokerProvidingInvoker.GetInvoker(
aClass: TInvokableClass): TSoapPascalInvoker;
begin
with TInvokableClassCrack(aClass), TSOAPHeadersBaseCrack(fSOAPHeaders) do
if FHeadersInbound is THeaderListWithInvoker then
Result:= THeaderListWithInvoker(FHeadersInbound).fInvoker
else
Result:= nil;
end;
class procedure TSoapPascalInvokerProvidingInvoker.AdjustSOAPHeaders(
aSelf: TSoapPascalInvoker);
begin
if not (TSoapPascalInvokerProvidingInvoker(aSelf).fHeadersIn is
THeaderListWithInvoker) then
begin
TSoapPascalInvokerProvidingInvoker(aSelf).FHeadersIn.Free;
TSoapPascalInvokerProvidingInvoker(aSelf).FHeadersIn:=
THeaderListWithInvoker.Create;
THeaderListWithInvoker(TSoapPascalInvokerProvidingInvoker(aSelf).FHeadersIn).fInvoker
:= aSelf;
TSoapPascalInvokerProvidingInvoker(aSelf).FHeadersIn.OwnsObjects := False;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -