C# 将继承的流作为WCF参数传递
简介: WCF服务可以接受C# 将继承的流作为WCF参数传递,c#,.net,wcf,stream,C#,.net,Wcf,Stream,简介: WCF服务可以接受流作为参数。如何让它接受从流继承的类 长版本: 我可以通过以下方式将具有流属性的类作为参数传递给WCF服务: [MessageContract] [ServiceKnownType(typeof(Class1))] etc. 我现在正试图用一个类从流继承,做一些类似的事情,但我尽可能地尝试,它不起作用。主要是,我试着用以下装饰: [DataContract] [KnownType(typeof(MyStream))] 但是我得到一个错误: 尝试序列化参数时出错 .
流
作为参数。如何让它接受从流继承的类
长版本:
我可以通过以下方式将具有流
属性的类作为参数传递给WCF服务:
[MessageContract]
[ServiceKnownType(typeof(Class1))]
etc.
我现在正试图用一个类从流继承,做一些类似的事情,但我尽可能地尝试,它不起作用。主要是,我试着用以下装饰:
[DataContract]
[KnownType(typeof(MyStream))]
但是我得到一个错误:
尝试序列化参数时出错
. InnerException消息为“类型”
“System.IO.MemoryStream”和数据协定名称
“记忆之流”是
没有预料到。考虑使用DATACONTractRelver或添加任何类型
已知类型列表中静态未知的-例如
使用KnownTypeAttribute属性或将其添加到列表中
已传递给DataContractSerializer“”的已知类型的
但我使用的是KnownTypeAttribute
!那么这里发生了什么,我该如何解决?(我已经尝试过使用[MessageContract]
和其他一些选项。)使用DataContract时,不需要DataMembers来定义要发送的元素吗。与MessageContracts基本相同-您不需要MessageHeader和MessageBody吗?@Brian Yes。这就是第一个代码中的等的意思。(我尽量简洁。)谢谢。我通过WCF进行流式传输,但我使用basicHTTPBinding和一个DataContract,其中一个DataMember用于文本(我所有的头垃圾),另一个用于字节,当通过线路发送时,它有效地转换为base64。但这并不能真正回答问题。