У меня есть простое решение, состоящее из двух проектов:
- Основной проект ASP.NET Core
- Библиотека классов Razor
Я хотел быиспользовать IdentityRole внутри библиотеки классов бритвы, поэтому я скачал Microsoft.AspNetCore.Identity внутри своего проекта библиотеки классов бритвы, и когда я пишу
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace RazorClassLibrary2.MyFeature.Pages
{
public class Page1Model : PageModel
{
public void OnGet()
{
IdentityRole role;
}
}
}
, я получаю следующую ошибку:
имя типа или пространства имен 'IdentityRole' не может быть найдено (вам не хватает директивы using или ссылки на сборку?)
Поскольку я хочу использовать среду .Net Core, но библиотека классов Razor создается с помощью
<TargetFramework>netstandard2.0</TargetFramework>
Я изменяю его с помощью
<TargetFramework>netcoreapp2.2</TargetFramework>
Примечание: изменение TargetFramework кажется нормальным, см. Этот комментарий https://github.com/aspnet/Docs/issues/7816#issuecomment-428193831
Думая, что это манипуляцияможет быть причиной проблемы, я создаю еще один "проект> Библиотека классов (.Net Core)" , скачал Microsoft.AspNetCore.Identity и создаю другой класс, такой как
using Microsoft.AspNetCore.Identity;
using System;
namespace ClassLibrary1
{
public class Class1
{
IdentityRole role;
}
}
если я скачаю Microsoft.AspNetCore.Identity внутри ASP.NET Core (основного) проекта и объявите переменную типа IdentityRole внутри любого класса основного проекта, после чего ссылка будет найдена.
Где я ошибаюсь?
Пример проекта можно найти здесь https://github.com/Blackleones/identityTest, если вы хотите сотрудничать, не стесняйтесь отправлять запрос на извлечение.