gpt4 book ai didi

wcf - 处理大型对象的 WCF 服务

转载 作者:行者123 更新时间:2023-12-04 06:50:30 25 4
gpt4 key购买 nike

将 WCF 用作在远程 PC 之间执行 RPC 的一种方式,您可以很好地将对象作为方法参数发送。这很容易编码,但意味着每当对象更改时,您都会发送整个内容,并且还可能意味着接收者必须具有额外的逻辑才能仅对更改的字段进行操作。或者你可以有一个类,它对对象的每个属性都有一个方法。如果您有一个大类并且通常只更改一个属性,那么这种细粒度的方法非常适合性能。但是要编写的代码要多得多,并且每次对象获得另一个属性时都必须维护它。

有没有更好的方法可以避免为每个属性编写大量复制粘贴方法,但也只发送实际更改的属性?我们可以从类/接口(interface)或其他东西自动生成 WCF 服务方法吗?

例如,假设我们有(伪)类,目标是两个应用程序想要保持关于人的同步(我添加了一个复杂的属性 List 使其更像现实生活):

class Pet
{
String name;
AnimalType type;
}

class Person
{
int age;
float height;
string name;
List<Pet> pets
}

最佳答案

WCF 本身并不这样做。有很多方法可以找出变化,但在大多数情况下,这是开发人员的职责。

唯一可以找到的预定义解决方案是 ADO.NET DataServices。这实际上是来自 Microsoft 的 Entity Framework Datacontext 的 RESTful WCF 服务包装器。老实说,您实际上不仅可以将它与 EF 一起使用。在客户端,您会获得一个跟踪更改的上下文。当您提交更改时,客户端仅发送具体更改。但这会限制您使用 HTTP 传输和 XML 或 JSON 序列化,这确实会影响大对象的性能。

当您向服务器发送带有一些元数据的命令时,也可能存在某种事件驱动的解决方案。

关于wcf - 处理大型对象的 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3193161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com