Huhu =)
//edit: Sorry is mir irgendwie ins falsche Topic gerutscht... Sollte eigentlich unter .NET
Ich hab ein dickes Problem, ich bekomm es einfach nicht hin eine Clientaktivierung einer remotefähigen Klasse durchzuführen.
Fürs bessere Verständnis hier mal der vorhandene Code:
Mein Interface:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| unit SharedInterface;
interface type iLoginManager = interface function UserLogin (Password : string; Username : string) : boolean; function getUsername : string; end;
implementation
end. |
Hier der für den Server:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| var Chan : TcpChannel; begin WriteLn('Server started...');
Chan := TcpChannel.Create(4242); ChannelServices.RegisterChannel(Chan);
RemotingConfiguration.RegisterActivatedServiceType(typeof(tLogin));
WriteLn('Key quits Server'); ReadLn; end. |
Hier der Header der Klasse:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| type tLogin = class(MarshalByRefObject, iLoginManager) private fLoggedUser : Longword; fUName : string; public constructor Create; function UserLogin (Password : string; Username : string) : boolean; function getUsername : string; end; |
Und hier der Abschnitt für den Client:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| var Channel : TcpChannel; LoginManager : iLoginManager;
procedure RegisterChannel(Server : string); var url : array [0..0] of TObject; begin if not Assigned(Channel) then begin Channel := TcpChannel.Create; ChannelServices.RegisterChannel(Channel); end;
Server := 'tcp://' + Server +':4242/LoginManager'; url[0] := Server;
if not Assigned(LoginManager) then begin LoginManager := iLoginManager(Activator.CreateInstance(typeof(iLoginManager),nil,url)); end;
end; |
So *puuuuh*...
Also wenn ich das jetzt ausführe mault auch der Compiler nicht rum bekomm aber folgende Fehlermeldung:
Zitat: |
Aktivierungsattribute werden für Typen, die nicht von 'MarshalByRefObject' abgeleitet werden, nicht unterstützt.
|
Ich weis damit nichts anzufangen, denn Schließlich ist meine Klasse doch von MarshalByRefObject abgleitet worden oder nicht?
Ich hoffe Ih könnt mir helfen und schonmal danke für eure Mühen.
Gruß
Dede