关于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; }
}