三层应用中服务器使用了
TRmdemo = class(TRemoteDataModule, IServerDemo, IServerInterface1, IServerinterface2, IserverConnnect)的形式,在TRemoteDataModule定义了多个接口
并进行了接口的转移
property dm_Connection : Tdm_Connection read Fdm_Connection write Setdm_Connection;
property dm_Interface1 : Tdm_Interface1 read Fdm_Interface1 write Setdm_Interface1;
property dm_Interface2 : Tdm_Interface2 read Fdm_Interface2 write Setdm_Interface2;
//转移接口
property ServerInterface1 : IServerInterface1 Read FServerInterface1 implements IServerInterface1;
property ServerInterface2 : IServerInterface2 Read FServerInterface2 implements IServerInterface2;
property serverConnnect : IserverConnnect Read FserverConnnect implements IserverConnnect; 在客户端获取appserver接口后,在通过appserver获取其他几个接口,例如IServerInterface1接口 现在如果采用Dcom连接,在客户端通过
Dcom.appserver as IServerInterface1的形式可以容易的获取到IServerInterface1接口 问题: 如果采用TSocketConnection连接,则出现问题,函数
var temp: Idispatch
Iinterface1:IServerInterface1
begin
temp:= Idispatch(SocketConnection.appserver);
Iinterface1 := temp as IServerInterface1;
if Iinterface1<> nil then
begin end;
end;
的方法已经无法获取IServerInterface1 接口,但appserver接口正常
采用什么方法可以正常获取IServerInterface1 等这几个接口?
TRmdemo = class(TRemoteDataModule, IServerDemo, IServerInterface1, IServerinterface2, IserverConnnect)的形式,在TRemoteDataModule定义了多个接口
并进行了接口的转移
property dm_Connection : Tdm_Connection read Fdm_Connection write Setdm_Connection;
property dm_Interface1 : Tdm_Interface1 read Fdm_Interface1 write Setdm_Interface1;
property dm_Interface2 : Tdm_Interface2 read Fdm_Interface2 write Setdm_Interface2;
//转移接口
property ServerInterface1 : IServerInterface1 Read FServerInterface1 implements IServerInterface1;
property ServerInterface2 : IServerInterface2 Read FServerInterface2 implements IServerInterface2;
property serverConnnect : IserverConnnect Read FserverConnnect implements IserverConnnect; 在客户端获取appserver接口后,在通过appserver获取其他几个接口,例如IServerInterface1接口 现在如果采用Dcom连接,在客户端通过
Dcom.appserver as IServerInterface1的形式可以容易的获取到IServerInterface1接口 问题: 如果采用TSocketConnection连接,则出现问题,函数
var temp: Idispatch
Iinterface1:IServerInterface1
begin
temp:= Idispatch(SocketConnection.appserver);
Iinterface1 := temp as IServerInterface1;
if Iinterface1<> nil then
begin end;
end;
的方法已经无法获取IServerInterface1 接口,但appserver接口正常
采用什么方法可以正常获取IServerInterface1 等这几个接口?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货