【问题标题】:asp.net mvc how to bind business logic from another project to my asp.net mvc projectasp.net mvc 如何将业务逻辑从另一个项目绑定到我的 asp.net mvc 项目
【发布时间】:2015-06-25 21:55:39
【问题描述】:

我的业务逻辑层和数据访问层在分开的 dll 中,我使用活动记录设计模式来构建我的 bll ...现在我需要在我的 mvc 项目中托管我的 bll 和 dal .. 我试图在我的模型中创建类并从 bll (在另一个 dll 中)继承它的属性和方法,但是当我尝试将基类分配给继承的一个时,它给了我异常

//Customer class located in mvc model folder which inhireted from EgxCustomer that located in bll in another project
using Egx.EgxBusiness.Inventory;
namespace EgxNMWeb.Models
{
public class Customers:EgxCustomer
{

}
}

//here i try to assign list of EgxCustomer to list of customer
 using Egx.EgxBusiness.Inventory;
 namespace EgxNMWeb.Models
 {
 public class CPanelVM
 {
    Customers currentCustomer { get; set; }
    List<Customers> AllNetwork { get; set; }
    public CPanelVM() 
    {
        AllNetwork = NMModel.GetCustomerNetwork(currentCustomer.CUST_CODE,    Egx.EgxBusiness.Inventory.NM.REF_TYPE.ALL);
    }
   }
   }

如何使用位于我的 mvc 项目的另一个项目中的 bll?

【问题讨论】:

  • 您遇到的异常是什么?
  • 无法从 Customer 解析到 EgxCustomer

标签: c# asp.net-mvc asp.net-mvc-4 design-patterns


【解决方案1】:

您的模型类无需位于 Models 文件夹中。这只是形成代码结构的一种方式(尽管默认情况下您的视图必须位于 Views 文件夹中)。如果需要,您可以直接在控制器中使用业务逻辑层模型。

我认为在您的项目中,您可以将视图模型放在 Models 文件夹中。

【讨论】:

  • 以及这里依赖注入的作用是什么,什么时候使用?
  • 您可以使用依赖注入模式使您的代码更加健壮和可测试。使用 DI,您可以将控制器与 BLL 具体类分开。通常人们通过定义接口来做到这一点。恕我直言,您不需要为 POCO 实体定义接口,因为它们没有逻辑。但最好为您的存储库定义一个接口,并将其接口传递给具有依赖容器(例如 Ninject)的控制器构造函数。查看此链接了解更多信息:asp.net/mvc/overview/older-versions/hands-on-labs/…
  • 在我发的文章中提到的链接:使用依赖注入模式和控制反转的优点如下:减少类耦合,增加代码重用,提高代码可维护性,改进应用程序测试
猜你喜欢
  • 1970-01-01
  • 2011-09-03
  • 2020-10-22
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多