私が今持っているものユニティアプリケーションブロック、パラメータをどのように注入工場に渡しますか?
Container.RegisterType<IUserManager, UserManagerMock>();
Container.RegisterType<IUser, UserMock>(
new InjectionFactory(
(c) => c.Resolve<IUserManager>().GetUser("John")));
し、それを
Container.Resolve<IProfile>();
を取得し、私は名前を持つユーザーオブジェクトを解決することができるようになりますように、工場出荷時にパラメータとして名前を渡したいです。このような 何か:
Container.Resolve<IProfile>("Jonh");
がどのように私はこの場合のタイプ登録を変更できますか?
個人的には、IUser/IProfileをサービスロケーション経由で取得しようとはしません。サービスの場所でIUserManagerを取得し、コード内でGetUser( "John")を呼び出すだけでOKです。 –
私はジョンに同意します。可能であれば、サービスの場所の代わりに依存関係注入を使用してください。これにより、コードをコンテナへの呼び出しから解放し、アプリケーション内でコンテナを呼び出す場所を1つ(または多くてもいくつか)持つことができます。 – Steven