在C#桌面应用程序和WCF服务之间交换数据的最佳方式是什么?我现在知道的唯一方法是将数据作为带分隔符的字符串数组发送。
由于
答案 0 :(得分:1)
您希望将哪种数据发送到WCF服务,是否可以更改客户端和服务?
对于二进制数据,最好使用net.tcp-binding,这对于那种数据是最佳的,并且开销最小。
如果您只需要在一次调用中发送多个变量,则可以使用data contract装饰包含要发送的每个变量的属性的类,并将该对象作为整体发送,而无需使用当所有数据都在一个变量中时使用的分隔符。
答案 1 :(得分:0)
这取决于您要发送的数据。
简单数据 - 单值 - 应使用适当的类型(如整数)发送。
应将更复杂的数据放入对象中。使用DTOs是个好主意,它们是没有行为的对象。
您的WCF项目应该定义相关的类,然后该服务的任何客户端(您的桌面应用程序)都可以访问该类。
客户端使用它比字符串数组容易得多。举一个例子,您的客户端必须在设置值之前知道字符串数组中的正确位置。对于DTO,它只是例如customer.ModifiedDate = DateTime.Now;