Образец. Использование поставщика событий WMI с платформой .NET Framework

В следующем образце строится приложение на языке C#, которое использует поставщика событий WMI, чтобы возвратить данные событий для всех событий языка DDL, которые происходят на установочном экземпляре по умолчанию SQL Server.

Пример

Следующий пример компилируется с использованием следующего командного файла:

set compiler_path=C:\WINNT\Microsoft.NET\Framework\v2.0.50110%compiler_path%\csc %1

using System;using System.Management;class SQLWEPExample {    public static void Main(string[] args)    {        string query =  @"SELECT * FROM DDL_EVENTS " ;        // Default namespace for default instance of SQL Server         string managementPath =            @"\\.\root\Microsoft\SqlServer\ServerEvents\MSSQLSERVER";        ManagementEventWatcher  watcher =             new ManagementEventWatcher(new WqlEventQuery (query));        ManagementScope scope = new ManagementScope (managementPath);        scope.Connect();        watcher.Scope = scope;        Console.WriteLine("Watching...");        while (true)        {            ManagementBaseObject obj = watcher.WaitForNextEvent();            Console.WriteLine("Event!");            foreach (PropertyData data in obj.Properties)            {                Console.Write("{0}:", data.Name);                if (data.Value == null)                {                    Console.WriteLine("<null>");                }                else                {                    Console.WriteLine(data.Value.ToString());                }            }            Console.WriteLine("-----");            Console.WriteLine();            Console.WriteLine();        }    }}