在属性周围传递参数或使用属性

时间:2019-07-17 21:19:07

标签: c# .net oop asp.net-core

我有一个基于多租户的应用程序,要求用户针对租户进行注册。

我有一个控制器:

public class AccountController : Controller
{
    private readonly IAccountService _accountService;

    private string TenantId
    {
        get
        {
            return HttpContext.Request.GetTenantId();
        }
    }

    public AccountController(IAccountService accountService)
    {
        _accountService = accountService;
        accountService.TenantId = TenantId;
    }

}

这将从标题中获取租户,并在具体类TenantId中设置AccountService属性,如下所示:

public class AccountService : IAccountService
{
    private readonly IAccountManager _accountManager;

    public string TenantId { get; set; }

    public AccountService(IAccountManager accountManager)
    {
        _accountManager = accountManager;
        _accountManager.TenantId = TenantId;
    }
}

TenantId然后需要设置一个具体类的另一个属性才能最终使用,如下所示:

public class AccountManager: IAccountManager
{
  public string TenantId { get; set; }

  public AccountManager()
  {

  }
}

我觉得获得和设置仅仅是为了使TenantId一直到达业务层是太多了。

我应该将TenantId作为参数传递给方法吗?如果没有,那么您什么时候希望将其传递给参数而不是设置公共属性?

0 个答案:

没有答案