【发布时间】:2012-03-12 11:17:46
【问题描述】:
我正在使用 WCF 服务。该服务将结果作为字符串返回。当我运行应用程序时,我收到此错误消息。
无法加载操作“GetTemplate”,因为它具有 System.ServiceModel.Channels.Message 类型的参数或返回类型,或者具有 MessageContractAttribute 和其他不同类型参数的类型。当使用 System.ServiceModel.Channels.Message 或带有 MessageContractAttribute 的类型时,该方法不得使用任何其他类型的参数。
我对应的代码是这样的: 接口:-
[OperationContract]
[WebGet(
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "GetTemplate/templateid={templateID}"
)]
Message GetTemplate(string templateID);
实现:-
public Message GetTemplate(string templateID)
{
string jsonText = TemplateManager.GetJSONTemplate(templateID);
return WebOperationContext.Current.CreateTextResponse(jsonText,
"application/json; charset=utf-8", Encoding.UTF8);
}
当我用谷歌搜索时,我知道,在使用 Message 时,我们不能使用任何可序列化的对象作为参数或返回类型。我想接受 templateid 作为参数,以获取相应的模板。有没有什么方法可以接受一个参数而不出现这个错误?
提前致谢。
维平梅农
【问题讨论】: