#c# #.net #.net-standard #.net-4.6.2
#c# #.net #.net-стандарт #.net-4.6.2
Вопрос:
В многопроектном решении я конвертирую некоторые проекты из .NET Framework (4.6.2) в .NET Standard (2.0). У меня есть абстрактный класс в преобразованном проекте .NET Standard, который определяет (например)
Public MustOverride Function DoStuff(input As IEnumerable(Of Integer));
и реализация в одном из необработанных проектов .NET Framework
Public Overrides Function DoStuff(input As IEnumerable(Of Integer))
{
//Does stuff
}
После преобразования у меня возникает ошибка сборки
Функция ‘doStuff’ не может быть объявлена ‘переопределяемой’, поскольку она не переопределяет функцию в базовом классе.
В этом классе есть много переопределенных методов — единственные, которые терпят неудачу, это те, у которых есть параметр IEnumerable. Visual Studio показывает мне, что определение IEnumerable для проекта .NET Standard находится в netstandard 2.0.0.0, в то время как определение для проекта Framework находится в mscorlib 4.0.0.0. Разве это не должно все еще работать, поскольку .NET Framework 4.6.2 поддерживает .NET Standard 2.0? Есть ли способ гарантировать, что оба класса найдут одинаковый IEnumerable? Я пытался ссылаться на NETStandard.Библиотека в проекте Framework, без эффекта.