Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.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
.net 向WCF服务发送对象或包含一个对象的列表有很大区别吗?_.net_Wcf_Data Transfer - Fatal编程技术网

.net 向WCF服务发送对象或包含一个对象的列表有很大区别吗?

.net 向WCF服务发送对象或包含一个对象的列表有很大区别吗?,.net,wcf,data-transfer,.net,Wcf,Data Transfer,向WCF服务发送一个对象或一个包含一个对象的列表有很大的区别——谈论传输速率、对象序列化 换句话说,如果我必须转移1k个对象或1k个只有一个对象的列表 Obs:这个疑问是关于我必须创建的代码,如果有,我将创建两个方法,一个发送对象,另一个发送列表(如果有很多对象要发送)。但是如果没有,我将只创建一个发送列表的方法(可以有一个或多个对象要发送)。不,发送一个对象列表和一个对象列表没有太大区别。您所考虑的是一个微观优化。我敢肯定,在代码中,除了发送对象和对象列表之外,还有其他几个地方可以加快应用程序

向WCF服务发送一个对象或一个包含一个对象的列表有很大的区别——谈论传输速率、对象序列化

换句话说,如果我必须转移1k个对象或1k个只有一个对象的列表


Obs:这个疑问是关于我必须创建的代码,如果有,我将创建两个方法,一个发送对象,另一个发送列表(如果有很多对象要发送)。但是如果没有,我将只创建一个发送列表的方法(可以有一个或多个对象要发送)。

不,发送一个对象列表和一个对象列表没有太大区别。您所考虑的是一个微观优化。我敢肯定,在代码中,除了发送对象和对象列表之外,还有其他几个地方可以加快应用程序的速度

原因如下。想想序列化列表需要什么。列表实际上不过是一个数组,它只是同一类型对象的几个数组。当然,系统还需要做一些额外的工作,比如说,“嘿,这是一个列表”,而不仅仅是一个对象,但这是难以置信的微小。你可以自己测试。数额之小令人难以置信


现在你需要考虑一下你在做什么。序列化不是问题所在。密码里有。您可以编写代码来快速处理一个对象,但同样的代码可以处理1000、10000等。当您允许传输列表,并且您还没有设置上限(通过抛出异常,这并不理想,但确实有效)时,您就打开了一个可能性,即有人可以传递大量数据。这就是代码超时开始出现问题的地方。你永远不能假设有人只会传入一个包含10个对象的列表,所以问题是,“你必须使它异步吗?”这需要更多的工作才能正确。因此,您应该问问自己,是否值得创建第二种方法来处理处理大量数据的可能性?Net中的数据序列化非常好。是的,有定制的解决方案可以加快速度,但在许多情况下,这是您最不担心的。

为什么?(谈论对象序列化)“当你允许传输列表,但你没有设置上限时,你就打开了一个机会,有人可以通过一个非常大的数量。”-在这一部分中,我将在app.config中设置一个上限。现在你已经说服了我!)+25给你。^^所以,谢谢凯文!唯一可以确定的方法是尝试两种方法,并进行测量。不幸的是,我现在无法测试它,但我必须现在就决定创建代码并继续我的项目的其余部分=/