wsdl.exe/svcutil.exe - 有没有办法在Web服务或客户端生成期间不为xsds中的类型生成类

RAV*_*RPA 6 c# wsdl.exe svcutil.exe

我们有一个集中管理的对象模型,用于C#中的模式中的类型.我们希望整个企业中的每个人都使用该对象模型,而不是在web服务客户端或服务实现期间使用每次从wsdl/svcutil生成的对象模型.

wsdl/svcutil是否有一个参数(任何其他方式)在执行期间不为模式类型生成类?

Dan*_*ger 0

如果从服务配置文件中删除 mex 端点,客户端应用程序将无法发现并生成代理对象。

如果我正确理解你的问题,处理这种情况的方法是执行以下操作:

  1. 创建一组具有服务和数据契约/共享对象模型的通用 DLL。
  2. 使用公共 dll 中的合同而不是 Visual Studio 在创建新服务时创​​建的合同来创建服务。
  3. 从服务器配置文件中删除 MEX 端点(这实际上会破坏代理生成)。
  4. 让您的客户端使用通用 dll 并在客户端手动创建通道(通过通道工厂等...)。

在这种方法中,您根本不使用 wsdl.exe/svcutil.exe,因为您基本上绕过了 wsdl。您也不添加服务引用,因为您是手动管理连接。

编辑:按照这种方法,客户端仍然可以尝试通过 wsdl.exe/svcutil.exe 生成代理对象,但他们不会从 wsdl 获取正确的信息。他们本质上会生成一个无法运行/不完整的代理。