Сообщение Re[3]: Зачем нужны IntrospectionExtensions? от 02.08.2019 10:39
Изменено 02.08.2019 10:42 Serginio1
Re[3]: Зачем нужны IntrospectionExtensions?
Здравствуйте, igor-booch, Вы писали:
S>>Потому, что type содержит кучу методов, которые тащат за собой кучу библиотек.
S>>Поэтому в .NET Standard и начали дробить, и добавлять функционал за счет расширений
IB>Здесь написано что класс Type
IB>
IB>Вы имеете ввиду, что в следующих версиях NET Standard (и может быть .NET Core) класс Type класс будет исключен?
IB>И как он может быть исключён, если метод GetTypeInfo расширяет класс Type? Будут другие методы для получения TypeInfo?
Я когда работал с 1.1 Они кучу функционала убрали из Type. Доступ к ним был через раширения GetTypeInfo
S>>Потому, что type содержит кучу методов, которые тащат за собой кучу библиотек.
S>>Поэтому в .NET Standard и начали дробить, и добавлять функционал за счет расширений
IB>Здесь написано что класс Type
IB>
IB>Применяется к
IB>.NET Core
IB>3.0 Preview 7 2.2 2.1 2.0 1.1 1.0
IB>.NET Standard
IB>2.1 Preview 2.0 1.6 1.5 1.4 1.3 1.2 1.1 1.0
IB>Вы имеете ввиду, что в следующих версиях NET Standard (и может быть .NET Core) класс Type класс будет исключен?
IB>И как он может быть исключён, если метод GetTypeInfo расширяет класс Type? Будут другие методы для получения TypeInfo?
Я когда работал с 1.1 Они кучу функционала убрали из Type. Доступ к ним был через раширения GetTypeInfo
public ИнформацияОТипеПараметра(Type type)
{
var TI = type.GetTypeInfo();
IsByRef = TI.IsByRef;
IsGenericType = (TI.IsGenericType && TI.IsGenericTypeDefinition) || TI.ContainsGenericParameters;
if (IsByRef)
{
Тип = type.GetElementType();
TI = Тип.GetTypeInfo();
}
else
Тип = type;
IsValue = TI.IsValueType;
if (IsValue)
{
УровеньИерархии = 0;
if (TI.IsGenericType && TI.GetGenericTypeDefinition() == typeof(Nullable<>))
{
IsNullable = true;
Тип = TI.GenericTypeArguments[0];
}
}
else
УровеньИерархии = НайтиУровень(0, Тип);
}
Re[3]: Зачем нужны IntrospectionExtensions?
Здравствуйте, igor-booch, Вы писали:
S>>Потому, что type содержит кучу методов, которые тащат за собой кучу библиотек.
S>>Поэтому в .NET Standard и начали дробить, и добавлять функционал за счет расширений
IB>Здесь написано что класс Type
IB>
IB>Вы имеете ввиду, что в следующих версиях NET Standard (и может быть .NET Core) класс Type класс будет исключен?
IB>И как он может быть исключён, если метод GetTypeInfo расширяет класс Type? Будут другие методы для получения TypeInfo?
А разве я говорил об исключении? Я говорил об уменьшении функционала и перенос его в TypeInfo
Я когда работал с 1.1 Они кучу функционала убрали из Type. Доступ к ним был через раширения GetTypeInfo
S>>Потому, что type содержит кучу методов, которые тащат за собой кучу библиотек.
S>>Поэтому в .NET Standard и начали дробить, и добавлять функционал за счет расширений
IB>Здесь написано что класс Type
IB>
IB>Применяется к
IB>.NET Core
IB>3.0 Preview 7 2.2 2.1 2.0 1.1 1.0
IB>.NET Standard
IB>2.1 Preview 2.0 1.6 1.5 1.4 1.3 1.2 1.1 1.0
IB>Вы имеете ввиду, что в следующих версиях NET Standard (и может быть .NET Core) класс Type класс будет исключен?
IB>И как он может быть исключён, если метод GetTypeInfo расширяет класс Type? Будут другие методы для получения TypeInfo?
А разве я говорил об исключении? Я говорил об уменьшении функционала и перенос его в TypeInfo
Я когда работал с 1.1 Они кучу функционала убрали из Type. Доступ к ним был через раширения GetTypeInfo
public ИнформацияОТипеПараметра(Type type)
{
var TI = type.GetTypeInfo();
IsByRef = TI.IsByRef;
IsGenericType = (TI.IsGenericType && TI.IsGenericTypeDefinition) || TI.ContainsGenericParameters;
if (IsByRef)
{
Тип = type.GetElementType();
TI = Тип.GetTypeInfo();
}
else
Тип = type;
IsValue = TI.IsValueType;
if (IsValue)
{
УровеньИерархии = 0;
if (TI.IsGenericType && TI.GetGenericTypeDefinition() == typeof(Nullable<>))
{
IsNullable = true;
Тип = TI.GenericTypeArguments[0];
}
}
else
УровеньИерархии = НайтиУровень(0, Тип);
}