C# 避免执行许多服务调用

C# 避免执行许多服务调用,c#,wcf,C#,Wcf,我刚刚开始学习WCF 似乎(远程)类的每一次使用都会转换为对服务器的请求(甚至只是在将值作为参数发送到服务之前设置值) 这不会导致太多不必要的请求吗 我能做些什么来避免浪费时间和带宽?我只是想设定一些值。这些属性的Set部分除了设置相应字段的值外,什么都没有 比如说, interface IService { int GetResult(MyComplexType1 input); } 使用此服务时,首先必须初始化 MyFieldType 1< /Case>实例,每当我设置“代码> M

我刚刚开始学习WCF

似乎(远程)类的每一次使用都会转换为对服务器的请求(甚至只是在将值作为参数发送到服务之前设置值)

这不会导致太多不必要的请求吗

我能做些什么来避免浪费时间和带宽?我只是想设定一些值。这些属性的
Set
部分除了设置相应字段的值外,什么都没有

比如说,

interface IService 
{
   int GetResult(MyComplexType1 input);
}

使用此服务时,首先必须初始化<代码> MyFieldType 1< /Case>实例,每当我设置“代码> MyFieldType 1< /代码>的任何值时,它都会向服务器发出请求。

< p>调用Web服务通常是代码中昂贵的调用,因此您的设计需要考虑这一点。例如,以下服务不会非常有效:

public interface ICalculatorService
{
  void SetOperandOne(int value);
  void SetOperandTwo(int value);
  void SetMode(CalculationMode mode);
  int GetResult();
}
鉴于以下接口将所需调用减少为一个:

public interface ICalculatorService
{
  int GetResult(int operandOne, int operandTwo, CalculationMode mode);
}

什么是“远程”类?您的代码示例在哪里?发布任何示例,或者更具体地说-什么方法?设置值在哪里?ETC必须创建您的
MyComplexType1
和设置,其属性绝对不是“远程”调用-这是您在客户端代码中本地执行的操作。一旦你设置了你的对象,然后你调用web服务——那只是一个远程服务call@marc_s是这样吗?但是如果我使用的是
MyComplexType1
方法。。。它在本地运行吗?怎么可能呢?添加web引用时,是否将我的方法的内容复制到客户端?随WCF来回发送的数据不应包含功能—仅包含数据(字段/属性),但如果包含功能—则任何调用都将在客户端本地执行—WCF不是远程过程调用机制