我在一个解决方案中有三个asp.net mvc 5项目。解决方案称为Bank24
,因此也是程序集。项目Application_layer
是主要项目。还有2个项目。有BusinessLogic_layer
我在哪里使用数据库和Data layer
我正在创建数据库。
当我尝试使用BusinessLogic_layer
Application_layer
中的类时,我收到运行时服务器错误 -
无法加载" BusinessLogic_layer.Services.DataService"来自汇编" Bank24,Version = 1.0.0.0,Culture = neutral, 公钥=空"
项目Application_layer
已经引用了BusinessLogic_layer
。包含已与Using
指令链接的所需类的目录。所以我不知道它为什么要加载。
以下是Controller MainController
的代码。我需要在方法Register
中使用所需的类。它与using BusinessLogic_layer.Services;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Microsoft.AspNet.Identity;
using Application_layer.Models;
using BusinessLogic_layer.Services;
namespace Application_layer.Controllers
{
[Authorize]
public class MainController : Controller
{
...
public UserManager<ApplicationUser> UserManager { get; private set; }
[HttpGet]
[AllowAnonymous]
//[ValidateAntiForgeryToken]
public void Register()
{
var user = new ApplicationUser() { UserName = "Admin" };
var result = UserManager.Create(user, "q1w2e3");
if (result.Succeeded)
{
DataService dataWorker = new DataService();
dataWorker.CreateUser("Admin", "Суренко Иван Васильевич", 0);
RedirectToAction("Login", "Authorization");
}
}
}
}
以下是DataService
类的代码,该代码位于另一个项目的Services
文件夹中
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BusinessLogic_layer.Models;
using Data_layer.DataAccess;
using Data_layer.Models;
namespace BusinessLogic_layer.Services
{
public class DataService
{
...
public void CreateUser(string login, string name, byte role)
{
bool isEmployee = false;
if (role == 0)
isEmployee = true;
BankContext db = new BankContext();
db.Users.Add(new User() { Login = login, Name = name, Role = role, IsEmployee = isEmployee });
db.SaveChanges();
}
...
}
}
P.S。我有Visual Studio 2013
答案 0 :(得分:0)
我已经解决了这个问题。我开始了新项目并开始测试。几个小时后,我发现了几件事。 1.项目必须在不同的组件中,但它们可以在一个解决方案中。我不知道为什么CLR在同一个程序集中无法加载类型。 2.从1开始 - 除主项目外的所有项目必须具有empty project
类型。