Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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
C# WCF中的代理生成_C#_Wcf - Fatal编程技术网

C# WCF中的代理生成

C# WCF中的代理生成,c#,wcf,C#,Wcf,IDesign WCF编码标准中规定: 请勿复制代理代码。如果两个或多个客户端使用同一协定,请将代理分配到单独的类库 我想知道上述状态的优点是什么?除了DRY(不要重复)的一般原则外,它还避免了具有相同名称和成员的多个类型的潜在混淆 当然,如果您的两个或多个客户端完全独立(单独的Visual Studio解决方案),则每个客户端都有自己的代理是可以的。除了DRY的一般原则(不要重复您自己的原则)之外,它避免了使用具有相同名称和成员的多个类型可能造成的混淆 当然,如果您的两个或多个客户端完全独立(

IDesign WCF编码标准中规定: 请勿复制代理代码。如果两个或多个客户端使用同一协定,请将代理分配到单独的类库
我想知道上述状态的优点是什么?

除了DRY(不要重复)的一般原则外,它还避免了具有相同名称和成员的多个类型的潜在混淆


当然,如果您的两个或多个客户端完全独立(单独的Visual Studio解决方案),则每个客户端都有自己的代理是可以的。

除了DRY的一般原则(不要重复您自己的原则)之外,它避免了使用具有相同名称和成员的多个类型可能造成的混淆


当然,如果您的两个或多个客户端完全独立(单独的Visual Studio解决方案),则每个客户端都有自己的代理是可以的。

对我来说,这意味着如果您在多个位置使用代理方法,则不要复制该代码,而是将其移动到单独的类中。例如,如果因为某个操作已更改而重新生成代理,则必须在使用该操作的任何地方更改代码。如果该操作只在一个位置使用,那么代码的可维护性就要高得多

这也是封装代理使用情况并确保代理正确使用的一种好方法(完成时关闭通道,正确处理异常,捕获异常时中止通道,等等)


如果要使用代理方法,建议不要使用VisualStudio添加服务引用来生成该代理。如果可能的话,考虑使用ChhannFr工厂实现。

对我来说,这意味着,如果在多个地方使用代理方法,不要复制该代码,而是将其移到单独的类。例如,如果因为某个操作已更改而重新生成代理,则必须在使用该操作的任何地方更改代码。如果该操作只在一个位置使用,那么代码的可维护性就要高得多

这也是封装代理使用情况并确保代理正确使用的一种好方法(完成时关闭通道,正确处理异常,捕获异常时中止通道,等等)


如果要使用代理方法,建议不要使用VisualStudio添加服务引用来生成该代理。如果可能的话,考虑使用ChhannFr工厂实现。

是的,都是分开的/独立的应用程序。然后,你可以有一个“公共”的LIB,在那里你可以隔离共同的行为。是的,所有的都是独立的应用程序。然后你可以有一个“公共”的库,在那里你可以隔离共同的行为。