C# 类型';projectname.Repositories.IRepository';找不到。它可能需要装配鉴定,例如;MyType,MyAssembly“;
我是一家公司的实习生,我的任务是为他们提供一个可用的门户网站。因为我是个实习生,我的技能还没那么先进,所以他们雇了一个高级开发人员来和我们合作。他建立了我们的项目结构等。。。他告诉我们为DI与AutoFac合作,但我对此一点都不熟悉。这家伙现在正在度假,所以他真的帮不了我们 当使用Autofac时,我遇到了这个错误,我不知道如何修复它 无法指定类型“projectnamespace.Repositories.IRepository” 建立可能需要装配鉴定,例如“MyType, 我的大会”。 My Global.asax.csC# 类型';projectname.Repositories.IRepository';找不到。它可能需要装配鉴定,例如;MyType,MyAssembly“;,c#,asp.net-mvc,dependency-injection,autofac,C#,Asp.net Mvc,Dependency Injection,Autofac,我是一家公司的实习生,我的任务是为他们提供一个可用的门户网站。因为我是个实习生,我的技能还没那么先进,所以他们雇了一个高级开发人员来和我们合作。他建立了我们的项目结构等。。。他告诉我们为DI与AutoFac合作,但我对此一点都不熟悉。这家伙现在正在度假,所以他真的帮不了我们 当使用Autofac时,我遇到了这个错误,我不知道如何修复它 无法指定类型“projectnamespace.Repositories.IRepository” 建立可能需要装配鉴定,例如“MyType, 我的大会”。 M
var builder = new ContainerBuilder();
//register types from configuration
builder.RegisterModule(new ConfigurationSettingsReader());
// Register your MVC controllers.
builder.RegisterControllers(Assembly.GetExecutingAssembly());
// Set the dependency resolver to be Autofac.
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
Web.config
IRepository.cs
public interface IRepository
{
string FetchAll();
}
public class OrderRepository : IRepository
{
public string FetchAll()
{
return "return something";
}
}
OrderRepository.cs
public interface IRepository
{
string FetchAll();
}
public class OrderRepository : IRepository
{
public string FetchAll()
{
return "return something";
}
}
最后但并非最不重要的是HomeController
private readonly IRepository _repository;
public HomeController(OrderRepository repo)
{
_repository = repo;
}
[HttpGet]
public ActionResult Index()
{
ViewBag.Data = _repository.FetchAll();
return View();
}
任何帮助都将不胜感激 该错误意味着Autofac无法找到承载IRepository
类型的程序集
要重新激活它,必须指定在autofac配置中查找类型的位置。您可以通过在服务
属性上指定assemblyname来完成此操作。语法为namespace.typeName,assemblyName
在您的情况下,似乎assemblyName是projectName谢谢,这修复了上面的错误。现在,我发现了一个新错误:在“projectnamespace.Controllers.HomeController”类型上,找不到任何使用“Autofac.Core.Activators.Reflection.DefaultConstructorFinder”的构造函数,可以使用可用的服务和参数进行调用:错误堆栈中还有一些错误:无法解析的参数“projectnamespace.Repositories.OrderRepository”构造函数“Void.ctor(Go4Logistics.Tms.Portal.Web.Repositories.OrderRepository)”。您必须在Autofac中注册
OrderRepository
。我建议阅读一些介绍文章来理解依赖注入的关键概念,它将帮助您解决进一步的问题