Как получить значение из `State` служебных перехватчиков C# в TFS?

У меня есть служебные перехватчики в моем проекте TFS. Как можно получить информацию для служебных перехватчиков с помощью C#? Мне нужно имя ловушки и значение State (Enabled или Disabled).

Является ли это возможным?

Как получить значение из `State` служебных перехватчиков C# в TFS?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
250
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать REST API, чтобы получить значение состояния. См. Получите список подписок

Например, PowerShell:

Param(
   [string]$baseUrl = "https://{account}.visualstudio.com/DefaultCollection/_apis/hooks/subscriptions",  
   [string]$user = "username",
   [string]$token = "password"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))   
$response = (Invoke-RestMethod -Uri $baseUrl -Method Get -UseDefaultCredential -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)})
$hooks = $response.value 

$states = @()
foreach($hook in $hooks){

    $customObject = new-object PSObject -property @{
          "consumer" = $hook.consumerId
          "id" = $hook.id
          "eventType" = $hook.eventType
          "state" = $hook.status
        } 
    $states += $customObject        
}   
$states | Select `
                consumer, 
                id, 
                eventType,
                state

Чтобы вызвать REST API с помощью C#, вы можете ссылаться на этот поток: Как вызвать в REST api с помощью C#?

Вы также можете сослаться на приведенный ниже образец:

using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

namespace GetBuildsREST
{
    class Program
    {
        public static void Main()
        {
            Task t = GetBuildsREST();
            Task.WaitAll(new Task[] { t });
        }
        private static async Task GetBuildsREST()
        {
            try
            {
                var username = "domain\\user";
                var password = "password";

                using (var client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Accept.Add(
                        new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                        Convert.ToBase64String(
                            System.Text.ASCIIEncoding.ASCII.GetBytes(
                                string.Format("{0}:{1}", username, password))));

                    using (HttpResponseMessage response = client.GetAsync(
                                "https://{account}.visualstudio.com/DefaultCollection/_apis/hooks/subscriptions?api-version=2.0").Result)
                    {
                        response.EnsureSuccessStatusCode();
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                        //Do somthing to get the vale of the state....
                        //var obj = JObject.Parse(responseBody);
                        //var state = (string)obj["value"]["status"];
                        //or var state = (string)obj.SelectToken("value.status");

                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
}

@ignn Решили ли вы проблему с помощью решения? какое-нибудь обновление?

Andy Li-MSFT 10.09.2018 09:01

Другие вопросы по теме