0

次のように定義されたサービスがあります。

public class MentorService : IMentorService
{
    private readonly Func<MentorContext> _dbFactory;

    public MentorService(string connectionString)
    {
        this._dbFactory = () => new MentorContext(connectionString);
    }

    public MentorService()
    {
        this._dbFactory = () => new MentorContext();
    }

    public MentorContext CreateContext()
    {
        return _dbFactory.Invoke();
    }

    public IList<User> GetUsers()
    {
        using (var db = CreateContext())
        {
            return db.Users.ToList();
        }
    }
    // etc etc
 }

API コントローラー内には、次のものがあります。

public class UserController : ApiController
{

    private readonly IMentorService _mentorService;

    public UserController()
    {
        _mentorService = new MentorService();
    }
    public UserController(IMentorService mentorService)
    {
        _mentorService = mentorService;
    }
}

メンテナンスとテストを容易にするために、サービスをサブサービス (UserService、BookService など) に分割したいと考えています。次に、コントローラーで単一のサービスを使用したいだけです。

これはどのように行うことができますか?

4

1 に答える 1