Вот тривиальный пример, который должен возвращать строку «Hello World».Тем не менее, браузер отображает что-то вроде SGVsbG8gV29ybGQ=
.Какой верный способ вернуть простой текст из сервиса в старом стиле?
пожалуйста, знайте, что:
Я не могу вернуть строку: три символа Юникода будутавтоматически добавляется, и унаследованный HTTP-клиент не сможет взаимодействовать.
Я мог бы вернуть Message
, но все равно должен продолжать анализировать, чтобы извлечь переменную data
.Смешивание типов Message
и int
в одной и той же сигнатуре метода не допускается AFAIK.<pre>
[ServiceContract(SessionMode=SessionMode.NotAllowed)]
public interface IHello
{
[WebGet(UriTemplate = "manager?data={data}")]
[OperationContract]
Byte[] DoIt(int data);
}</p>
<p>public class Hello : IHello
{
public Byte[] DoIt(int data)
{
return Encoding.ASCII.GetBytes("HelloWorld");
}
}
ОБНОВЛЕНИЕ : Это не бред, а правильно закодированный ответ.Тем не менее, формат не то, что я ожидал бы получить.Я выяснил (как предполагают джентльмены ниже), что полный контроль над форматом сообщений транспортного уровня достигается с помощью класса Message
.Однако, если я использую один - я теряю возможность парсинга запроса (атрибут UriTemplate
).Следовательно, было бы здорово узнать, как интегрировать Message
с UriRequest
.
PS Если «чистая» интеграция невозможна - чем является самый элегантный обходной путь?Есть ли какой-нибудь код, который делается за проводной завесой, который я могу позаимствовать и использовать в своей реализации,