Create ServiceController array dynamically

1

I would like to create a Windows services monitoring and want to register a customizable amount of services. For this I need to have a ServiceController array dynamically, the problem is that of Exception when I try to assign the service name to the ServiceName property.

Here is an example below:

//Eu declaro uma variável global
ServiceController[] scService;

//Aqui vai o código que busca os serviços e põe em um Array de String

//aí o contaService tem a quantidade de serviços cadastrados
scService = new ServiceController[contaService];

//Agora quando vou dar o nome aos servicos
for (int i = 0; i < contaService; i++)
{
    //Nessa linha da exception
    scService[i].ServiceName = scNome[i];
}
    
asked by anonymous 01.09.2017 / 17:09

2 answers

0

You forgot to instantiate the vectors before so you are giving Null Excption, try to put this before:

scService[i] = new ServiceController("Simple Service");

Or:

scService[i] = ServiceController.GetServices();
    
01.09.2017 / 18:00
1

The correct is to instantiate in the For loop, passing the names as a parameter to each Array item:

//Eu declaro uma variável global
ServiceController[] scService;

//Aqui vai o código que busca os serviços e põe em um Array

//Tira a linha que instancia array dos objetos vazios
//scService = new ServiceController[contaService];

//Agora quando vou dar o nome aos servicos
for (int i = 0; i < contaService; i++)
{
    //Alterei a linha da exception
    //scService[i].ServiceName = scNome[i];
    //Para a linha abaixo
    scService[i] = new ServiceController(scValor[i]);
}
    
01.09.2017 / 19:33