当前位置: 代码迷 >> Web Service >> 关于WCF请求应答的有关问题
  详细解决方案

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

热度:196   发布时间:2016-05-02 02:30:28.0
关于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; }
}
  相关解决方案