ソリューションに 2 つのプロジェクトがあります。ASP.NET Web アプリケーションと ASMX Web サービス アプリケーション。ASMX Web サービスは、ASP.NET Web アプリケーション (Web 参照として) で参照されます。
aspx ページで Web サービスのオブジェクトを作成し、次のようにメソッドを呼び出します。
MyWebService myWebService = new MyWebService();
UserDetail userDetail = myWebService.GetUserDetail(25);
これは、私の aspx ページが MyWebService の具体的な実装に依存していることを意味します。Dependency Inversion Principle (DIP) によると、コードは具体的な実装ではなく抽象化に依存する必要があり、それらの抽象化は詳細に依存すべきではありません。詳細は抽象化に依存する必要があります。
この依存関係を削除するにはどうすればよいですか?
Google で次の記事に出くわしましたが、これは似ていますが、探しているものとは正確には異なります。
- http://www.springframework.net/doc-latest/reference/html/webservices.html
- http://www.codeproject.com/Articles/310677/ASP-NET-Web-Services-Dependency-Injection-using-Un
- http://www.gitshah.com/2011/11/integrating-springnet-with-asmx.html
これらの記事はすべて、依存関係を asmx Web サービスに注入することと、asmx Web サービスの依存関係を asp.net Web アプリケーションに注入しないことについて説明しています。
私は依存性注入という用語の初心者であり、間違った方法で考え、間違った方向に進んでいる可能性があります。
この混乱を理解するのを手伝ってください。