【发布时间】:2014-05-08 13:59:05
【问题描述】:
在流式传输和序列化方面我有点绿...但我想做的是让服务器上的 Upload 方法返回一个可序列化的对象给客户端(它现在是无效的)。
我有一个用 [Serializable] 装饰的公共类 ServiceResult,以及一个实现 IFileTransferService 的公共类 FileTransferService
[ServiceContract()]
public interface IFileTransferService
{
[OperationContract(IsOneWay = false)]
string Upload(FileTransferRequest request);
}
实现做它的事,最后我创建并序列化对象并尝试返回字符串
return ServiceResultSerializer.SerializeAnObject(result);
在客户端我使用这个类调用这个服务
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName = "IFileTransferService")]
public interface IFileTransferService
{
// CODEGEN: Generating message contract since the wrapper name (FileTransferRequest) of message FileTransferRequest does not match the default value (Upload)
[System.ServiceModel.OperationContractAttribute(IsOneWay = false, Action = "http://tempuri.org/IFileTransferService/Upload")]
string Upload(FileTransferRequest request);
}
我基本上是在这个博客上找到这个项目:http://weblogs.asp.net/cibrax/archive/2007/08/29/sending-attachments-with-wcf.aspx
并试图让它返回一个客户端调用者可以使用的值
我现在收到一条错误消息:
无法加载操作“上传”,因为它具有 System.ServiceModel.Channels.Message 类型的参数或返回类型,或者具有 MessageContractAttribute 和其他不同类型参数的类型。使用 System.ServiceModel.Channels.Message 或带有 MessageContractAttribute 的类型时,该方法不得使用任何其他类型的参数。
我不知道这意味着什么:P 我想是因为我正在尝试更改服务参数。
对不起,如果我过于笼统 - 任何帮助将不胜感激。
【问题讨论】:
-
我认为您发布的代码中缺少某些内容。您提到的
ServiceResult课程在哪里?还有,FileTransferRequest的定义是什么?
标签: asp.net serialization stream filestream