考虑以下 Visual Studio 项目结构
- 项目A.csproj
- 类.cs
- 项目B.csproj
- 参考
- 项目A
- 网络参考
- 网络服务
- 参考
- AWebService.csproj
- 参考
- 项目A
- ReturnAClassViaWebService.asmx
- 参考
当 ProjectB 将 Web 引用添加到 AWebService 并自动生成用于访问 AWebService 的所有代理代码(包括 AClass 的新实现)时,就会出现此问题。由于我们所有其他代码都需要使用 ProjectA 中定义的 AClass,因此我们被迫将从服务返回的 AWebService.AClass 转换为我们可以使用的东西。
我们目前正在考虑两种解决方案,但都不是理想的。
- 手动编辑生成的 Reference.cs 以删除 AClass 的新定义
- 将 AWebService.AClass 序列化为流,然后反序列化为 ProjectA.AClass
有没有人有更好的解决方案?对于其他开发人员来说,这似乎很常见。
理想情况下,我们希望在 ProjectB 中生成代理代码来引用 ProjectA.AClass,而不是生成一个全新的实现。
我们的环境是使用 .NET 2.0 的 VS 2008。