В настоящее время я в процессе преобразования библиотеки классов .NET 4.5
в библиотеку классов .NET Core
, ссылаясь на .NETStandard v1.6
.System.Runtime.CompilerServices в .NET Стандартная библиотека
В части моего кода (сильно полагающегося на отражение) Мне нужно определить, имеет ли объект тип Closure
, который находится в пространстве имен System.Runtime.CompilerServices
. Это пространство имен и их тип недоступны в .NETStandard v1.6
.
- Был ли этот тип перемещен, или он больше не доступен?
- Поскольку мой код полагался на него, что является альтернативой, если оно недоступно в
.NETStandard
?
Конкретный код, опираясь на Closure
определяет типы параметров делегата, пропуская компилятор генерируется Closure
из них.
Delegate toWrap;
MethodInfo toWrapInfo = toWrap.GetMethodInfo();
var toWrapArguments = toWrapInfo.GetParameters()
// Closure argument isn't an actual argument, but added by the compiler.
.SkipWhile(p => p.ParameterType == typeof(Closure))
.Select(p => p.ParameterType);
Вы пытались распечатать тип, где вы знаете, что это «Закрытие» или подобное, при использовании старой версии каркаса .net? После такого типа у вас могут быть хорошие шансы найти соответствующий класс (каким-то образом связанный с вашим типом) в каталоге объектов в visual studio. –
@ChrisTophski Я нахожусь на нем. Как только мой мигрированный код скомпилируется, я запустил свои тесты и посмотрю, что изменилось. Если никто другой не ответит на этот вопрос к тому времени, я это сделаю. ; p –
Используйте http://packagesearch.azurewebsites.net –