これはほとんどの人にとって明白に思えるかもしれませんが、依存性注入 (DI) がインターフェイスの使用に依存していることを確認しようとしているだけです。
より具体的には、特定のインターフェイスをコンストラクターのパラメーターとして持つクラス、またはプロパティとして定義された特定のインターフェイス (別名セッター) を持つクラスの場合、DI フレームワークは、ニーズを満たすために具体的なクラスのインスタンスを渡すことができます。そのクラスのそのインターフェイスの。(この説明が明確でない場合は申し訳ありません。用語/概念がまだ私にとって少し新しいため、これを適切に説明するのに苦労しています。)
私が尋ねる理由は、現在、ある種の依存関係を持つクラスを持っているからです。オブジェクトの依存関係ではなく、URL です。クラスは次のようになります [C#]:
using System.Web.Services.Protocols;
public partial class SomeLibraryService : SoapHttpClientProtocol
{
public SomeLibraryService()
{
this.Url = "http://MyDomainName.com:8080/library-service/jse";
}
}
SoapHttpClientProtocol クラスには、Public プロパティUrl
(これは単純な古い「文字列」) があり、ここのコンストラクターはそれをハードコードされた値に初期化します。
DIフレームワークを使用して、構築時に別の値を注入することはできますか? 私はそうでthis.Url
はないと思っていInterface
ます。それはString
です。
[ちなみに、私が作業しているコードのコメントによると、上記のコードは「wsdl によって自動生成された」ものでした。したがって、このコードを特に変更したくはありませんが、自分で再生成することもありません。したがって、このコードを変更しても問題ないかもしれません。]
文字列をパラメーターとして取り、そのように初期化する代替コンストラクターを作成しているのを見ることができましたが、this.Url
疎結合の懸念の分離を維持することに関して、それが正しいアプローチであるかどうかはわかりません。(SoC)
この状況に対するアドバイスはありますか?