私はまだ OOP の概念と依存性注入に少し苦労しているので、ご容赦ください。
User テーブルを使用して Linq2Sql モデルを生成しました。このユーザーに確認メールを送信できるようにしたいので、User オブジェクトの部分クラス ファイルを作成し、SendConfirmationEmail() メソッドを追加するのが自然だと感じました。ユーザークラスに。このメソッドは MailService を使用して実際の電子メールを送信し、依存性注入を使用してサービスを渡したいので、このように User オブジェクトにコンストラクターのオーバーロードを作成しました
public User(IMailService service) : this()
{
_service = service;
}
SendConfirmationEmail メソッドは次のようになります。
public void SendConfirmationEmail()
{
_service.SendMail(params...);
}
私はこれが一種の貧弱な依存性注入であることを認識しており、後で依存性注入フレームワークに切り替えたいと考えています。
私にとっての問題は、モデル dll からサービス dll への参照を作成する必要があることです。これは正しくないようです。また、linq2sql で生成されたエンティティが依存性注入フレームワークと OOP の概念とどのように連携するかがよくわからないためです (ninject のように見えると思います)。最も有望です)。
私がこれで正しい方向に進んでいるかどうか、私が言うことができるよりも少し多くの経験を持つ誰かを望んでいました. 私はそれを機能させることができることを知っていますが、同じステップで正しい方法でそれを行うことについて自分自身を教育したいと思います.