我收到以下异常,并且没有太多关于应该修复的内容和方法的线索:
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
混在一起?依赖于解析请求的正确方法是什么?
答案 0 :(得分:0)
您收到错误是因为您正在返回WCF Message
类型。这意味着您必须从输入中删除数据参数,或者将其设为Message
类型而不是int
。
Message
类是WCF基础结构的基础部分。它在此处记录:http://msdn.microsoft.com/en-us/library/ms734675.aspx
最好定义自己的数据协定类型,而不是使用Message
。