在api Controller初始化

时间:2018-03-28 20:15:08

标签: c# asp.net-mvc asp.net-apicontroller

我正在尝试在我的apiController构造函数中为数据库连接目的传递一个参数。 例如,在我的baseAPIController默认情况下,我需要将代码设置为“1”。但在这个特定的控制器中,我需要将该参数更改为“7”。 问题是我的BaseAPIController实例化为'1'并且在实例化之后即使我在属性中发送'7'它也不会改变。 如何在baseAPI初始化之前在此特定控制器中设置“7”?

public class ListagemProjetoEletricoWebController :BaseAPIController<ListagemProjetoEletricoBusiness>
{       
    public List<ListagemProjeto> Get(String cpf)
    {
        business.idEmpresa = 7;
        List<ListagemProjeto> listProjetoEletricoWeb = business.GetProjetoEletricoLista(cpf);
        return listProjetoEletricoWeb;
    }
}

在我的baseAPIcontroller中我有。

protected override void Initialize(HttpControllerContext controllerContext)
{
    this.business = new TBusiness();
    this.business.idEmpresa = 1;

    this.business.db = new BaseBusiness(this.business.idEmpresa).db; 

    base.Initialize(controllerContext);
}

1 个答案:

答案 0 :(得分:0)

在基类中创建一个虚拟属性以表示idEmpresa

public class BaseAPIController
{
     //Set the default to whatever it is used normally
     public virtual int idEmpresa { get {return 1;} }
}

然后在您的入门课程中覆盖该属性

public class ListagemProjetoEletricoWebController :BaseAPIController<ListagemProjetoEletricoBusiness>
{
    public override int idEmpresa { get { return 7;} } 
}

然后,当您设置您的业务idEmpresa时,请使用该属性

this.business.idEmpresa = this.idEmpresa;