我知道有一个类似的问题here没有解决方案。WCF - CODEGEN:由于消息FileRequest具有标题而生成消息合同
我正在通过HTTP进行WCF流媒体服务。
这里是我的MessageContract
[MessageContract]
public class FileRequest
{
#region Message Header
[MessageHeader(MustUnderstand = true)]
public Credential Credentials { get; set; }
#endregion
#region Message body
[MessageBodyMember(Order = 1)]
public FileInfo FileInfo { get; set; }
#endregion
#region Ctor
// ...
#endregion
}
[MessageContract]
public class FileRequestResponse
{
#region Message Header
[MessageHeader(MustUnderstand = true)]
public FileInfo FileHeader { get; set; }
[MessageHeader(MustUnderstand = true)]
public OperationResult<bool> OperationResult { get; set; }
#endregion
#region Message Body
[MessageBodyMember]
public Stream FileStream { get; set; }
#endregion
#region Constructor
// ...
#endregion
}
这里是我的ServiceContract
[ServiceContract(Namespace = "https://service.contract.example.com")]
public interface IUpdateService
{
[OperationContract(Action = "GetUpdates")]
OperationResult<List<FileInfo>> GetUpates(ApplicationInfo applicationInfo, Credential credential);
[OperationContract(Action = "GetFile")]
FileRequestResponse FileRequest(FileRequest fileRequest);
}
现在的问题是,为什么我收到此错误:当添加我的服务引用
// CODEGEN: Generating message contract since message FileRequest has headers
。最终的结果是服务合约将FileRequest操作包装到我不想要的包装中。
public FileInfo FileRequest(Credential Credentials, FileInfo, out OperationResult<bool> OperationResult, out System.IO.Stream FileStream)
注: 我没有检查在服务引用“始终生成消息协定”。
这不是一个错误 - 它只是一个信息说明 – 2010-04-09 07:50:03
我知道这不是一个错误,因为它仍然会编译,我只是表示它是一个错误,因为它是一个意外的结果。 – 2010-04-09 16:50:28