c # set performanceCounters enabled = true в коде - PullRequest
1 голос
/ 08 декабря 2010

Я использую этот метод для подсчета байтов, отправленных приложением:

string currId = Process.GetCurrentProcess().Id.ToString();

            PerformanceCounter dataSentCounter = new PerformanceCounter();
            dataSentCounter.CategoryName=".NET CLR Networking";
            dataSentCounter.CounterName="Bytes Sent";
            dataSentCounter.InstanceName =  "curr"+"["+currId+"]";
            dataSentCounter.ReadOnly = true;

            float sumSent = 0;
            sumSent = dataSentCounter.NextValue();

            uploadSize_Label.Content = sumSent.ToString();

Отлично работает с app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.net>
    <settings>
        <performanceCounters enabled="true"/>
    </settings>
</system.net>
</configuration>

Можно ли установить performanceCounters enabled="true" без использования app.config (без файла конфигурации - только по коду приложения)?

1 Ответ

3 голосов
/ 08 декабря 2010

Вы должны иметь возможность использовать свойство PerformanceCountersElement.Enabled .

        System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        NetSectionGroup netGroup = (NetSectionGroup)config.SectionGroups.Get("system.net");
        netGroup.Settings.PerformanceCounters.Enabled = true;

        config.Save(ConfigurationSaveMode.Modified);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...