创建从TRemotable继承的对象后发生访问冲突

时间:2019-01-11 18:22:48

标签: web-services delphi interface access-violation

我是Web服务的新手,并且在此行的客户端应用程序中遇到访问冲突:

procedure TForm1.Button1Click(Sender: TObject);
var
  req: G110Request;
begin
  req := G110Request.Create;
  req.Header.UserSoftware.name_ := 'somename';//AV!
  //...
end;

G110Request类最终是一个TRemotable对象:

G110Request = class(I1_SinglePack_Type)
  private
  public
    constructor Create; override;
  published
end;

I1_SinglePack_Type = class(Header_Type)
  private
    FBody: RequestData_Type;
  public
    destructor Destroy; override;
  published
    property Body: RequestData_Type  read FBody write FBody;
end;

Header_Type = class(TRemotable)
  private
    FHeader: RequestHeaderData_Type;
  public
    destructor Destroy; override;
  published
    property Header: RequestHeaderData_Type  read FHeader write FHeader;
end;

  RequestHeaderData_Type = class(TRemotable)
  private
    FAuth: RequestAuthHeaderData_Type;
    FUserSoftware: UserSoftware_Type;
    FTransaction: RequestTransactionHeaderData_Type;
  public
    destructor Destroy; override;
  published
    property Auth:         RequestAuthHeaderData_Type         read FAuth write FAuth;
    property UserSoftware: UserSoftware_Type                  read FUserSoftware write FUserSoftware;
    property Transaction:  RequestTransactionHeaderData_Type  read FTransaction write FTransaction;
  end;

constructor G110Request.Create;
begin
  inherited Create;
  FSerializationOptions := [xoLiteralParam];
end;

TRemotable类是否有特殊约定?我在做什么错?

0 个答案:

没有答案