ASP.NET Core 2.2.0
Я создал RCL с некоторыми (Razor) страницами, интерфейсами, репозиториями и моделями, и я хочу поделиться этим RCL, используя ссылку на DLL, с другими моими проектами. Это прекрасно работает (используя this ), и теперь я хочу использовать View Components внутри RCL, но это дает мне ошибку:
InvalidOperationException: невозможно разрешить службу для типа «Shared.ModelInterfaces.IMyRepository» при попытке активировать «Shared.Components.ItemViewComponent».
Погружаясь глубже в ошибку, я нашел это:
метод может быть вызван только для типа, для которого универсальный параметр type.is имеет значение true
И, похоже, это вызывает основную ошибку.
Мой ViewComponent не имеет общего типа:
namespace Shared.Components
{
public class ItemViewComponent : ViewComponent
{
private readonly IMyRepository _myRepository;
public ItemViewComponent(IMyRepository myRepository)
{
_myRepository = myRepository;
}
public IViewComponentResult Invoke(string ViewType, string Category = "", string Organization = "", string ItemID = "")
{
// some code / some calls to my _myRepository / some returns
}
}
}
Как я могу это исправить? Мне нужен репозиторий IMy ...
Примечание:
Я знаю, что на RCL обычно ссылаются как на проект, так и на пакет NuGet, но эти методы имеют для меня некоторые недостатки, поэтому я ссылаюсь на свой RCL с помощью DLL.