TFS Получить последний код - свойства GettingEventArgs 'Total' и 'Current' не отображаются

Я написал код для получения последней версии TFS с использованием клиентских API. Я хотел бы быть в курсе прогресса, и я понимаю, что можно использовать свойства «Total» и «Current» свойства GettingEventArgs. Но эти свойства не видны во время разработки, а видны только во время выполнения (см. Изображение ниже). Но событие во время выполнения, я не могу получить их, используя отражение, как показано ниже.

    static void versionControl_Getting(object sender, GettingEventArgs e)
    {
        GettingEventArgs status = (GettingEventArgs)e;

        int curr = (int)status.GetType().GetProperty("Current").GetValue(status, null);
        int tot = (int)status.GetType().GetProperty("Total").GetValue(status, null);
     }

Это свойство не находит, и я получаю нулевую ссылку на «GetProperty». Надеюсь, синтаксис правильный.

Свойства в quickwatch

Есть мысли о том, как получить эти значения собственности?


person Lalman    schedule 10.03.2012    source источник
comment
Я понял, что модификаторы доступа означают, что свойства внутренние. Мне интересно, почему для них нет общедоступных или доступных эквивалентов. Так и не нашли способ показать прогресс в процентах ...   -  person Lalman    schedule 12.03.2012
comment
Это оказалось довольно просто, чего я раньше никогда не использовал. Флаги привязки позволяют получить доступ к внутреннему / частному или любому виду собственности. См. Ответ на этот вопрос   -  person Lalman    schedule 22.03.2012


Ответы (1)


Ошибка в GettingEventArgs status = (GettingEventArgs) e;. Вы, наверное, имеете в виду

OperationStatus status = e.Status;
person Nikola Markovinović    schedule 12.03.2012
comment
Никола, OperationStatus показывает только текущий статус, например получение, но не дает способа получить процентный прогресс. GettingEventArgs, тогда как имеет свойства Total и Current, но они внутренние. Кажется, я не нахожу ничего, что могло бы предоставить общий / текущий или процентный прогресс. Я поднял это из-за этого (social.msdn.microsoft.com/Forums/eu/tfsversioncontrol/thread/) Запрос блога MSDN, подтверждающий, что это возможно - person Lalman; 12.03.2012
comment
Поскольку Current и Total не являются общедоступными, вам необходимо вызвать эту перегрузку GetProperty () на эл. - person Nikola Markovinović; 12.03.2012