读书人

关于WCF请求应答的有关问题

发布时间: 2013-08-16 14:29:57 作者: rapoo

关于WCF请求应答的问题
本帖最后由 cpp_1 于 2013-08-12 22:51:36 编辑 现在我在做一个WCF文件上传的功能

[ServiceContract]
public interface IUpLoadService
{
[OperationContract(Action = "UploadFile", IsOneWay = true)]
void UploadFile(FileUploadMessage request);

}


[MessageContract]
public class FileUploadMessage
{
[MessageHeader(MustUnderstand = true)]
public string SavePath;

[MessageHeader(MustUnderstand = true)]
public string FileName;

[MessageBodyMember(Order = 1)]
public Stream FileData;

}

但现在有一个问题我用了

[OperationContract(Action = "UploadFile", IsOneWay = true)]
void UploadFile(FileUploadMessage request);

但我又想返回一个TURE OR false 的值,就一直报契约出错,怎么才能让这个方法给反一个值呢

直接把isoneway=false,就报:

无法加载操作“UploadFile”,因为它具有类型为 System.ServiceModel.Channels.Message 的参数或返回类型,或具有一个带有 MessageContractAttribute 及其他不同类型参数的类型。当使用 System.ServiceModel.Channels.Message 或具有 MessageContractAttribute 的类型时,方法不应使用任何其他参数类型。
[解决办法]
[OperationContract(Action = "UploadFile")]
UpdateResult UploadFile(FileUploadMessage request);

[MessageContract]
public class UpdateResult
{
[MessageBodyMember] public bool Result { get; set; }
}

读书人网 >Web Service

热点推荐