Метод System.Type.GetGenericArguments()
«отсутствует» из .NETStandard 1.0, и я думал, что TypeInfo.GenericTypeArguments
был заменен на GetGenericArguments()
, но, к сожалению, они ведут себя по-разному, если поставляются с открытым общим типом. Возьмем, например, следующий код:Что такое эквивалент Type.GetGenericArguments() в .NETStandard 1.0/.NET Core?
Type type = typeof(ICommandHandler<>);
type.GetGenericArguments(); // return { TCommand }
type.GetTypeInfo().GenericTypeArguments; // returns empty array
Хотя метод GetGenericArguments()
возвращает общий аргумент типа TCommand
, то GenericTypeArguments
просто возвращает пустой массив для того же открытого общего типа.
Каково точное поведение GenericTypeArguments
и что эквивалентно Type.GetGenericArguments()
в .NET Standard 1.0?
@DavidL: .NETStandard это [он .NET стандартной библиотека является формальной спецификацией .NET API, которые предназначены, чтобы быть доступны на всех .NET Среда выполнения] (https://docs.microsoft.com/en-us/dotnet/articles/standard/library). .NET 1.0 - ooooold, а .NETStandard - новый; новый PCL будет более точным. – Steven
Примечание: один стандарт, а один - реализация стандарта. Из статьи: «.NET Core 1.0 реализует .NET Standard Library 1.6» – AaronLS
Кроме того, согласно этой таблице единственной версией .NET Standard 1.0 был Windows Phone Silverlight 8.0. – AaronLS