C# WCF推荐序列化多个对象的方法
我正试图围绕一个可能的瓶颈进行优化 我有一个服务器应用程序,它远程为从数据库到应用程序的对象提供服务,它可以处理1-n个不同类型的1-n对象(其中n可以是一个相对较高的数字),这些对象都实现了一个公共接口,但可能在不同类型上包含许多独特的属性 客户机应用程序将服务器对象存储在本地缓存中,直到它们准备好通过服务器将它们保留回数据库 这是目前在WCF中完成的,每个类定义一个DataContract 由于可能需要将大量对象传递回服务器(根据实现的不同而有所不同),我不希望再将所有这些对象都作为单独的调用来执行,而是将所有对象包装在一个序列化(或者更好的是压缩)流中,并将它们作为一个连接发送到服务器 我可以很简单地推出我自己的,但更愿意使用推荐的方法,并希望有人可能会建议一个。如果你能说服我,我也愿意接受我的方法可能不是最好的主意。多高是“相对高” 例如,出现的一个选项是使用包装器对象:C# WCF推荐序列化多个对象的方法,c#,.net,wcf,serialization,C#,.net,Wcf,Serialization,我正试图围绕一个可能的瓶颈进行优化 我有一个服务器应用程序,它远程为从数据库到应用程序的对象提供服务,它可以处理1-n个不同类型的1-n对象(其中n可以是一个相对较高的数字),这些对象都实现了一个公共接口,但可能在不同类型上包含许多独特的属性 客户机应用程序将服务器对象存储在本地缓存中,直到它们准备好通过服务器将它们保留回数据库 这是目前在WCF中完成的,每个类定义一个DataContract 由于可能需要将大量对象传递回服务器(根据实现的不同而有所不同),我不希望再将所有这些对象都作为单独的调
[DataContract]
public class Wrapper {
[DataMember(Order = 1)]
public List<Foo> Foos {get {...}}
[DataMember(Order = 2)]
public List<Bar> Bars {get {...}}
[DataMember(Order = 3)]
public List<Blop> Blops {get {...}}
}
[DataContract]
公共类包装器{
[数据成员(顺序=1)]
公共列表Foos{get{…}
[数据成员(顺序=2)]
公共列表栏{get{…}
[数据成员(顺序=3)]
公共列表Blops{get{…}
}
然后,您应该能够发送包含任意数量的Foo
、Bar
和/或Blop
记录的单个消息。我包含的Foo
,Bar
和Blop
也使用Order
属性)
(编辑2-请注意,您总是可以将请求分解为许多中等大小的
包装
消息,然后在服务器上(可能在数据库的暂存表中)调用一个方法来应用所有更改)谢谢您的Marc,总是有一些思想食粮,其他选项可用,您的里程可能会有所不同-P