My Entityクラスはリポジトリに依存しています。コンテナへの参照の受け渡しやCommonServiceLocatorのEntityFactoryの使用を避ける方法
public class User
{
private readonly IUserRepository _userRepository;
public User(IUserRepository userRepository)
{
_userRepository = userRepository;
}
...
}
また、エンティティを作成するためにリポジトリで使用されるEntityFactoryクラスがあります。
コンテナへの参照を持つEntityFactoryやCommonServiceLocatorを使用しないようにする方法はありますか? (Context Agnostic)
私はクラスを間違って設計していますか?Userクラスはリポジトリに依存してはいけませんか?編集
:ここであるデビッドからメソッドを使用してコード:
// Ninject binding
Bind<Func<User>>().ToMethod(cxt =>() => new User(cxt.Kernel.Get<IUserRepository>()));
// EntityFactory class
private readonly Func<User> _userFactory;
public EntityFactory(Func<User> userFactory)
{
_userFactory = userFactory;
}
public User InstantiateUser()
{
return userFactory.Invoke();
}
'ServiceLocator.Current.GetInstance()'または '_kernel.Get ()'を呼び出すことはできませんか? –
Steven