レジストリ:シンプルインジェクター:巡回グラフエラー
container.Register<IAuthenticationHandler, AuthenticationHandler>(Lifestyle.Transient);
container.Register<IUserHandler, UserHandler>(Lifestyle.Transient);
クラス1:
public UserHandler(IAuthenticationHandler authenticationHandler)
{
_authenticationHandler = authenticationHandler;
}
クラス2:
public AuthenticationHandler(IUserHandler userHandler)
{
_userHandler = userHandler;
}
私が何周期を理解します問題はです。 UserHandlerが初期化されると、AuthenticationHandlerインプリメンテーションが注入され、UserHandlerインスタンスが作成され、サイクルが開始されます。
私はこの問題をどのように解決しますか?どこで私はこのように注射する必要がありますか?
ありがとうございました!
UPDATE:
function AddUser(User user){ // User Handler
_authenticationHandler.GenerateRandomSalt();
string hashedPassword = _authenticationHandler.HashPassword(user.Password.HashedPassword, salt);
}
function Authenticate(string username, string password){ // Authentication Handler
_userHandler.GetUserByUsername(username?.Trim());
}
Bascially私は、ユーザーを取得し、ユーザーがそこにあることを確認するためにAuthenticationHandlerでUserHandlerを呼び出す必要があります。
パスワードを暗号化してハッシュする関数を取得するには、UserHandlerのAuthenticationHandlerを呼び出す必要があります。
は私がのための方法を実装するために、私はリポジトリは、ユーザーを取得するが、私はより多くのものは、ユーザーのサービスでこれを処理する
は悪循環を断ち切る方法を示すために、例の多くを必要とするだろう。私が確かに言うことができる1つのヒントは、あなたのDIコンテナの選択はここでは重要ではないということです。 – jdphenix