Я получаю следующее исключение и не имеют большого понятия о том, что и как должно быть исправлено:Странное исключение при запуске конечной точки WCF
The operation 'ShowData' could not be loaded because it has a parameter or return type of type System.ServiceModel.Channels.Message or a type that has MessageContractAttribute and other parameters of different types. When using System.ServiceModel.Channels.Message or types with MessageContractAttribute, the method must not use any other types of parameters.
Мой код:
[ServiceContract(SessionMode=SessionMode.NotAllowed)]
public interface IHelper
{
[WebGet(UriTemplate = "/cgi/manager.exe?GetData={data}")]
[OperationContract]
Message ShowData(int data);
}
public class Helper : IHelper
{
public Message ShowData(int data)
{
var result = new StringBuilder(...);
foreach (...)
{
result.AppendFormat(...);
}
result.AppendLine(...);
return WebOperationContext.Current.CreateTextResponse(result.ToString(), "text/xml", Encoding.ASCII);
}
Думаю, в нем говорится, что я не могу смешивать Message
с int
? Каков правильный способ использовать синтаксический анализ запроса?
спасибо! Я использовал сообщение только потому, что мне нужно вернуть простой текст ASCII. Я попытаюсь вернуть Byte [] и увидит, работает ли он. – BreakPhreak
Вы не получите исключение, если вы вернете Byte [], но почему бы не вернуть строку, если вы просто отправляете обратно текст? –
Отправка назад строки приводит к отправке Unicode с несколькими специальными символами в начале (3 байта). Унаследованное приложение ожидает строку oldskul XML ASCII. Если у вас есть другие рекомендации, я буду рад услышать. – BreakPhreak