gpt4 book ai didi

c# - 找不到类型 'projectname.Repositories.IRepository'。它可能需要装配资格,例如 "MyType, MyAssembly"

转载 作者:行者123 更新时间:2023-11-30 16:55:18 25 4
gpt4 key购买 nike

我是一家公司的实习生,我的任务是为他们提供一个可用的门户网站。由于我是一名实习生,我的技能还没有那么先进,所以他们聘请了一位将与我们合作的高级开发人员。他设置了我们的项目结构等...他告诉我们使用 AutoFac 进行 DI,但我对此一点都不熟悉。这家伙现在正在度假,所以他不能真正帮助我们取款。

在使用 Autofac 时出现此错误,我不知道如何修复它。

The type 'projectnamespace.Repositories.IRepository' could not be found. It may require assembly qualification, e.g. "MyType, MyAssembly". enter image description here

我的 Global.asax.cs

        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

<autofac>
<components>
<component
type="projectnamespace.Repositories.OrderRepository, projectnamespace"
service="projectnamespace.Repositories.IRepository" />
</components>
</autofac>

IRepository.cs

public interface IRepository
{
string FetchAll();
}

OrderRepository.cs

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 配置中查找类型的位置。您可以通过在 service 属性上指定程序集名称来实现。语法是namespace.typeName, assemblyName

<autofac>
<components>
<component
type="projectnamespace.Repositories.OrderRepository, assemblyName"
service="projectnamespace.Repositories.IRepository, assemblyName" />
</components>
</autofac>

在您的情况下,assemblyName 似乎是 projectName

关于c# - 找不到类型 'projectname.Repositories.IRepository'。它可能需要装配资格,例如 "MyType, MyAssembly",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29647347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com