Как использовать идеи приложения в стандартной библиотеке .net? - PullRequest
0 голосов
/ 01 ноября 2019

Я использовал информацию о приложении в веб-API. Это работает хорошо. В настоящее время нашему контроллеру необходимо вызвать библиотеку классов (указывается в пакете nuget). Мне нужно использовать понимание приложения в библиотеке классов. Нет исключений, но ничего не вошло в Application Insights. Я пишу код следующим образом. Наша телеметрическая конфигурация уже инициализирована в контроллере.

var telemetryClient = new TelemetryClient();
var customEvent = new Microsoft.ApplicationInsights.DataContracts.EventTelemetry
{
    Name = "helloworld",
};
// customEvent.Metrics.Add({ "latency", 42});
telemetryClient.TrackEvent(customEvent);

Что я должен сделать, чтобы понимание работы приложения работало?

1 Ответ

0 голосов
/ 01 ноября 2019

Обычно для входа в App Insights достаточно следующих шагов:

1- В своем классе запуска WebApi и проекте библиотеки добавьте сборку App Insights через nuget.

Microsoft.ApplicationInsights

2-Зарегистрируйте App Insights в своем классе запуска:

services.AddApplicationInsightsTelemetry(Configuration);

3- Настройте свой инструментальный ключ в appsettings.json:

"ApplicationInsights": {
  "InstrumentationKey": "<Your instrumentation key here>"
}

4- В любом классе, который вам нужен, введите TelemetryClient и используйтеit.

using Microsoft.ApplicationInsights

namespace MyNamesPace
{
    public class MyClass
    {
        private readonly TelemetryClient _telemetryClient;

        public MyClass(TelemetryClient telemetryClient)
        {
            _telemetryClient= telemetryClient;
        }

        public myClassMethod()
        {
            // Use your _telemetryClient instance
            _telemetryClient.TrackEvent("Your Telemetry Event");
        }
    }
}

4- В вашем контроллере введите ваш класс

namespace MyApiNamesPace
{
    public class MyController : ControllerBase
    {
        private readonly IMyClass _myClass;

        public MyClass(IMyClass myClass)
        {
            _myClass = myClass;
        }

        public IActionResult myAction()
        {
            _myClass.MyClassMethod();
        }
    }
}

5- Не забудьте зарегистрировать ваш класс в контейнере DI, в классе запуска:

services.AddScoped<IMyClass, MyClass>();

Счастливого программирования !!

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