Array
(
)

.NET Remoting

Sandro.borges
   - 07 fev 2007

Pessoal estou criando uma aplicação tres camadas usando .NET Remoting e estou tendo alguns problema com serialização.

1. A primeira e com o TDateTime, criei uma classe em um package que é compartilhada entre o server e o cliente, a classe ficou como nesse exemplo.

{ TUsuario }
[Serializable]
TUsuario = class
private
FID : Integer;
FUSUARIO : String;
FDATACAD : TDateTime;
public
property ID : Integer read FID write FID;
property USUARIO : String read FUSUARIO write FUSUARIO;
property DATACAD : TDateTime read FDATACAD write FDATACAD;
end;

O que acontece é q quando tento estanciar o objeto no lado cliente aparece essa mensagem:

´System.Runtime.Serialization.SerializationException: The type Borland.Delphi.TDateTime in Assembly Borland.Delphi, Version=10.0.4143.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b is not marked as serializable.´

2. Essa é uma pouco mais importante, no lado do servidor criei algumas classes para tratar a regra de negocio e tentei levantar uma excecão com o raise para ser tratada no client.

Exemplo da classe no lado do servidor:
procedure TUsuarioDB.Teste( pUsuario : TUsuario );
begin
if pUsuario.NENHUMRESULTADO then
raise EAbort.Create( ´Usuário encontrado´ )
else
raise EAbort.Create( ´Usuário não cadastrado´ );
end;

e no client ficou assim
procedure TUsuarioForm.Button7_Click(sender: System.Object; e: System.EventArgs);
begin
try
vUsuarioDB.Teste( vUsuario );
except
on E : Exception do
MessageBox.Show( e.Message,
´Erro...´,
MessageBoxButtons.OK,
MessageBoxIcon.Information );
end;
end;

Mas aparece a seguinte mensagem.

´System.Runtime.Serialization.SerializationException: The type Borland.Vcl.EAbort in Assembly ImplosysServer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null is not marked as serializable.´

Eu tenho mais algumas dúvidas sobre serialização, mas vou deixar apenas essas duas por enquando.

Agradeço qualquer ajuda.
t+