Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.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# 空检查流。空_C#_Wcf - Fatal编程技术网

C# 空检查流。空

C# 空检查流。空,c#,wcf,C#,Wcf,但是,我遇到了与“”相同的情况,不同之处在于,当我使用供应商web服务时,如果流为null,则现有问题可以访问服务器代码以抛出FaultException,从而返回流。null是指web服务为null 我们曾试图要求供应商更改抛出故障的方法,但供应商给出的原因是,存在其他使用此方法的系统,并从返回流更改。Null可能会破坏其他系统 我想知道是否有人能教我如何在流上执行空检查。请空 我尝试了==null,但它似乎不起作用。使用对WCF的Web引用绑定webservice 更新 我发现通过WCF返回

但是,我遇到了与“”相同的情况,不同之处在于,当我使用供应商web服务时,如果流为null,则现有问题可以访问服务器代码以抛出FaultException,从而返回
流。null
是指web服务为null

我们曾试图要求供应商更改抛出故障的方法,但供应商给出的原因是,存在其他使用此方法的系统,并从返回
流更改。Null
可能会破坏其他系统

我想知道是否有人能教我如何在流上执行空检查。请空

我尝试了
==null
,但它似乎不起作用。使用对WCF的Web引用绑定webservice

更新

我发现通过WCF返回Stream.Null将导致CanSeek=false(根据下面一条评论中提到的内容(至少是从我的供应商web服务返回的内容)。这是否意味着从WCF返回的每个流都是CanSeek=false且无法找到长度?

您可能需要检查流的
长度。如果为0,则流为空。

由于您使用的是WCF,因此无法在不读取流的情况下检查长度,因此您可以从流读取一个字节查看流是否为空

var isEmpty = streamFromWcf.ReadByte() == -1;

它不会告诉你它是否是一个流。但是空流-只是它是空的。根据你的要求,你可能想在流中发送一个布尔值,说明它是否是一个空流。

如果对象为空,它不会抛出吗?@Noctis如果为空,它将始终返回0。可以提供一些更有用的信息关于流和长度:@woodykiddy,我抛出了一个异常,错误消息是“指定的方法不受支持”。如果我错过了一个细节,很抱歉,web服务是WCF。