次のVisualStudioプロジェクト構造を検討してください
- ProjectA.csproj
- AClass.cs
- ProjectB.csproj
- 参考文献
- ProjectA
- Webリファレンス
- AWebService
- 参考文献
- AWebService.csproj
- 参考文献
- ProjectA
- ReturnAClassViaWebService.asmx
- 参考文献
この問題は、ProjectBがWeb参照をAWebServiceに追加し、AClassの新しい実装を含むAWebServiceにアクセスするためのすべてのプロキシコードを自動的に生成するときに発生します。他のすべてのコードはProjectAで定義されたAClassを使用する必要があるため、サービスから返されたAWebService.AClassを使用可能なものに変換する必要があります。
現在、2つのソリューションを検討していますが、どちらも理想的ではありません。
- 生成されたReference.csを手動で編集して、AClassの新しい定義を削除します
- AWebService.AClassをストリームにシリアル化してから、ProjectA.AClassに逆シリアル化します。
誰かがより良い解決策を持っていますか?これは、他の開発者が経験したことのある一般的なもののようです。
理想的には、まったく新しい実装を生成するのではなく、ProjectBで生成されたプロキシコードでProjectA.AClassを参照する必要があります。
私たちの環境は、.NET2.0を使用したVS2008です。