Информация об изменениях

Сообщение 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>Применяется к
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>Применяется к
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, Тип);


        }