Как перебрать, и получить все объекты из ArgIterator?

135
15 октября 2021, 01:50

Си библиотека отдает список аргументов va_list, думаю что логично перебрать все это дело через ArgIterator.

У меня встал вопрос, как мне получить объект который отдается через GetNextArg, он же в свою очередь отдает структуру типа TypedReference, однако, мне не понятно что это за структура, и как мне ее использовать что бы заполнить массив с object[].

private unsafe void LogCallback
(
    IntPtr data,
    LogLevel level,
    IntPtr logContextPtr,
    byte* fmt,
    RuntimeArgumentHandle args
)
{
    byte* tmpFmt = fmt;
    int sizeFmt = 0;
    while (0 != *tmpFmt)
    {
        tmpFmt++;
        sizeFmt++;
    }
    ArgIterator iterator = new ArgIterator(args);
    string format = Encoding.UTF8.GetString(fmt, sizeFmt);
    List<object> objects = new List<object>();
    while (iterator.GetRemainingCount() != 0)
    {
        RuntimeTypeHandle typeHandle = iterator.GetNextArgType();
        TypedReference current = iterator.GetNextArg();
        // objects.Add(current);
    }
    iterator.End();
}

Как узнать тип который содержится в аргументе, и записать его в коллекцию?

READ ALSO
Не открывается браузер по умолчанию

Не открывается браузер по умолчанию

При попытке открыть браузер при помощи

209
Ошибка создания View в Entity Framework c#

Ошибка создания View в Entity Framework c#

столкнулся с проблемой создания View в EntityРаботаю в VS17

148
AMI send SMS C#

AMI send SMS C#

Доброго времени суток!

144
Нативное подключение к ssh C#

Нативное подключение к ssh C#

Как подключится к ssh с помощью C# без использования сторонних библиотек? Нужно просто подключится по ssh к серверу и выполнить командуИспользование...

132