- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要所有 3 个项目都在 Body 中,以便客户端可以使用它们,他不能修改 Header 中的数据(首先在 MessageHeader
中的前 2 个):
[MessageContract]
public class UploadRequest
{
[MessageBodyMember(Order = 2)]
public string FileName { get; set; }
[MessageBodyMember(Order = 1)]
public Guid itemId { get; set; }
[MessageBodyMember(Order = 3)]
public Stream Stream { get; set; }
}
我收到的错误是:
System.InvalidOperationException: In order to use Streams with the MessageContract programming model, the type UploadRequest must have a single member with MessageBodyMember attribute and the member type must be Stream.
at System.ServiceModel.Dispatcher.StreamFormatter.ValidateAndGetStreamPart(MessageDescription messageDescription, Boolean isRequest, String operationName)
at System.ServiceModel.Dispatcher.OperationFormatter..ctor(OperationDescription description, Boolean isRpc, Boolean isEncoded)
at System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter..ctor(OperationDescription description, DataContractFormatAttribute dataContractFormatAttribute, DataContractSerializerOperationBehavior serializerFactory)
at System.ServiceModel.Description.DataContractSerializerOperationBehavior.GetFormatter(OperationDescription operation, Boolean& formatRequest, Boolean& formatReply, Boolean isProxy)
at System.ServiceModel.Description.DataContractSerializerOperationBehavior.System.ServiceModel.Description.IOperationBehavior.ApplyDispatchBehavior(OperationDescription description, DispatchOperation dispatch)
at System.ServiceModel.Description.DispatcherBuilder.BindOperations(ContractDescription contract, ClientRuntime proxy, DispatchRuntime dispatch)
at System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost)
at System.ServiceModel.ServiceHostBase.InitializeRuntime()
at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at Microsoft.Tools.SvcHost.ServiceHostHelper.OpenService(ServiceInfo info)
我该如何解决?
最佳答案
如果你的一个属性是流,那么你只能有另一个属性Header。然后可以在header中存入FileName和itemId传入。
关于c# - WCF : How cand you add multiple MessageBodyMember to a MessageContract if one is Stream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34084914/
我对 WCF 相当陌生,只是有一个关于如何正确使 MessageContract 继承工作的问题。我的设置的简化版本如下 - 一个“基本”消息类型,然后是另一个从它继承的“测试”消息。 [Messag
我有以下 wcf 服务: [ServiceContract] public interface IUnitTestingService { [OperationContract] Te
我收到了一位客户关于他们的网络服务客户端如何工作的规范。该规范是从服务以及相应的 XSD 发送和接收的实际 SOAP XML 消息。客户希望我实现符合客户要求的网络服务。客户端是用 axis2 ws-
我在我的 wcf 契约(Contract)中使用 Stream 对象,因此被迫使用 MessageContract 而不是 DataContract。 [MessageContract] p
我正在编写我的第一个 WCF 服务。我决定先将服务作为 DLL 来编写,然后再考虑 WCF 的内容,这就是我现在所处的位置。 架构师建议我应该坚持我已经完成的消息对象的特定格式。然而,我在消息对象中使
我正在尝试使用以下 MessageContract 通过 Silverlight 客户端上传文件: [MessageContract] public class CategoryClientFileT
我正在尝试用 WCF 服务替换 asmx WebService。我的主要目标是保持 SOAP 消息相同。调用方不是 .NET,需要大量返工才能对契约(Contract)进行细微更改。 我的痛点是我试图
有什么方法可以在使用 Mtom 的同时使用 datacontracts 吗? 最佳答案 有 nothing preventing您不能使用与 MTOM 的数据契约(Contract)。 关于c# -
我想知道,当我使用流式传输通过 WCF 发送数据时,是否有可能返回任何内容?我使用 netTcpBinding,客户端和服务器在同一个本地网络中。 这是我的代码: [ServiceContract()
有没有办法让 DataContractSerializer 序列化一个 [MessageContract],就像它在通过 SOAP 传输时一样? 我有一个类在 WCF 调用的线路上显示如下: J
我正在尝试针对现有示例消息测试 [MessageContract] 类,并且我正在寻找一种方法来简化开发,方法是将示例消息文件读入我的 [MessageContract] 类并查看它是如何工作的(我在
我正在尝试将 MessageContract 添加到我的 WCF 服务,类似于这个问题中发生的事情:WCF: using streaming with Message Contracts 这是我得到的
预先说明:我无法更改传入的 SOAP 请求的格式,因为它们已由国际标准固定 (weeeeeeeee)。 我有一个 SOAP 请求进入我的 WCF 服务,看起来像这样:
我们有一个包含以下契约的 WCF 设置: [ServiceContract( Namespace = Constants.Namespaces.HL7Namespace, Na
我正在导入一个 WSDL 作为服务定义(入站到我的服务),无论出于何种原因,客户端正在格式化请求,使得 WCF 无法在代理类没有 MessageContract 装饰的情况下反序列化它. 我已经通过在
我有一个 WCF 服务操作的要求,它接受一个大流,处理它并返回该流。 我用了an MSDN article on Large Data Streaming作为我需要的引用。我遵循了那篇文章中的建议。
我可以在 WCF 中使用递归 MessageContract 吗?例如: 我需要发布一些参数,其中一个参数是一个文件流数组。这是我的操作合约: DomainResult AddSomethingNew
我需要所有 3 个项目都在 Body 中,以便客户端可以使用它们,他不能修改 Header 中的数据(首先在 MessageHeader 中的前 2 个): [MessageContract] pub
我是一名优秀的程序员,十分优秀!