You are not logged in.
Pages: 1
first create a interface,
ITest = interface(IInvokable)
procedure baba1;
end;
after server and client register the interface, then use the interface, every is ok.
then we delivery the client, after sometime, we need add procedure to ITest,
so interface looks like this,
ITest = interface(IInvokable)
procedure baba1;
procedure baba2;
procedure baba...;
end;
but when run old client, will generate interface contract check exception,
can make wise since the procedure baba1 parameter is not change, thanks!
For some interface register in application start, will cause application
can not auto update.
Offline
By default, the contract is computed from all methods and parameters.
But you can specify a custom contract.
See the optional aContractExpected parameter to the ServiceRegister() method.
Of course, aContractExpected parameter should match on both client and server side, and you may add some new methods, but not change parameter of an existing method (unless you force transmission as object)!
Online
Ideally, if can check procedure contract one by one it would be great,
this will make backward compatible, for a server interface
ITest = interface(IInvokable)
procedure baba1;
procedure baba2;
procedure baba...;
end;
client interface below will all pass check:
ITest = interface(IInvokable)
procedure baba1;
end;
ITest = interface(IInvokable)
procedure baba1;
procedure baba2;
end;
ITest = interface(IInvokable)
procedure baba1;
procedure baba2;
procedure baba...;
end;
I looked source, the parameter aContractExpected can't achieve this effect,
set server and client's aContractExpected a same value will just close the contract check function.
thanks!
Offline
We may implement this.
Could you create a feature request ticket?
See http://synopse.info/fossil/tktnew
Online
Done, feature request at http://synopse.info/fossil/tktview/1d6b … dde1cdc0f6, thanks!
Offline
This is a great suggestion! I hope it will get implemented.
Offline
Pages: 1