Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将继承的流作为WCF参数传递_C#_.net_Wcf_Stream - Fatal编程技术网

C# 将继承的流作为WCF参数传递

C# 将继承的流作为WCF参数传递,c#,.net,wcf,stream,C#,.net,Wcf,Stream,简介: WCF服务可以接受流作为参数。如何让它接受从流继承的类 长版本: 我可以通过以下方式将具有流属性的类作为参数传递给WCF服务: [MessageContract] [ServiceKnownType(typeof(Class1))] etc. 我现在正试图用一个类从流继承,做一些类似的事情,但我尽可能地尝试,它不起作用。主要是,我试着用以下装饰: [DataContract] [KnownType(typeof(MyStream))] 但是我得到一个错误: 尝试序列化参数时出错 .

简介

WCF服务可以接受
作为参数。如何让它接受从
流继承的类

长版本

我可以通过以下方式将具有
属性的类作为参数传递给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。但这并不能真正回答问题。