Как установить THTTPRio.Converter.Options для soLiteralParams в OnBeforeExecuteEvent - PullRequest
2 голосов
/ 24 сентября 2011

Это относится к сообщению Delphi SOAP Envelope и WCF .

Может кто-нибудь опубликовать пример кода, который может показать мне, как установить soLiteralParams в THTTPRio.Converter.Options в Delphi 7В настоящее время у меня есть следующий код.

Я перетащил компонент HTTPRIO в документ, который создал строку HTTPRIO1: THTTPRIO в начале кода.Я в основном хочу понять, как я устанавливаю soLiteralParams в вышеупомянутом компоненте.Ниже приведен код, который я пытаюсь выполнить, что приводит к ошибке.

procedure TForm1.CleanUpSOAP(const MethodName: String; var SOAPRequest: WideString);
var RIO: THTTPRIO;
begin

  //The following line is giving error
//      RIO.Converter.options :=  [soLiteralParams];
end;

В приведенном выше коде я объявил переменную RIO типа THTTPRIO, которая, я не уверен, является правильной.

Ответы [ 2 ]

2 голосов
/ 24 сентября 2011

Просто угадайте, поскольку вы предоставляете очень мало информации в своем вопросе.

Используйте переменную, назначенную компоненту, который вы уронили в своей форме.Не объявляйте новый локальный (который вы так и не создали).Чтобы установить Converter.Options в коде, вам нужно добавить OPToSOAPDomConv к вашему предложению использования.

implementation

  uses 
    OPToSOAPDomConv;

// BTW, this name might not be a good one if it's the 
// OnBeforeExecute event handler as that isn't 
// clear from the name.
procedure TForm1.CleanUpSOAP(const MethodName: String; var SOAPRequest: WideString);
begin
  // Note this clears any previous options!
  HTTPRIO1.Converter.Options :=  [soLiteralParams];
  // If you want to keep the previous options instead of replacing them
  // HTTPRIO1.Converter1.Options := HTTPRIO1.Converter1.Options + [soLiteralParams];
end;

Если вы уронили компонент в форме, я не уверен, почему выОднако вместо этого вы не обрабатываете это в Инспекторе объектов.

Если это не решит проблему, отредактируйте свой вопрос и предоставьте точное сообщение об ошибке, которое вы получаете, включая любые адреса памяти в случаеВозникает исключение.

1 голос
/ 25 сентября 2011

Я взломал это. Проблема заключалась в том, что я не ссылался на файл OPconvert.pas, который содержал перечисление TSOAPConvertOption. Я не знаю, правильно ли копировать этот файл в ту же папку, что и файлы моего проекта, и сослаться на это в разделе «использование», но он работал нормально.

...