Расширение промежуточного программного обеспечения для ведения журналов и метрик различными методами, помимо вызовов APIC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Расширение промежуточного программного обеспечения для ведения журналов и метрик различными методами, помимо вызовов API

Сообщение Гость »


Примечание. Я новичок в C# и .net.
Я работаю над записью журналов и показателей для API и конкретных операций. Для этого я планирую использовать промежуточное программное обеспечение. Я реализовал базовую версию промежуточного программного обеспечения вместе с настраиваемым атрибутом, и она отлично работает*** с такими методами API, как PostUsers, в приведенном ниже фрагменте кода.

Код: Выделить всё

namespace MyApp.Namespace1
{
[ApiController]
public class Controller : ControllerBase
{
[HttpPost]
[Route( "users" )]
[OperationName( "PostUsers" )] // Custom attribute to send the operation name to middleware
public async Task PostUsers( [FromBody] UsersRequest request )
{
try
{
...
}
catch ( Exception ex )
{
...
// This error (ex.Message, etc.) should be available in middleware
}

}
}
}
Но когда я применяю атрибут и промежуточное программное обеспечение к неконтроллерным методам, таким как HandleUsers и CreateStorage, упомянутым в фрагменте кода ниже, это не работает

Код: Выделить всё

internal class UsersProvider
{
[OperationName( "HandleUsers" )]
private async Task HandleUsers()
{
}
}

public class Storage
{
[OperationName( "CreateStorage" )]
private static void CreateStorage( )
{
}
}
Is there any way to achieve a similar pattern so that it can be applied to all types of methods?
***: Currently, I'm passing the required details from the controller to the middleware by using HttpContext.Items. Is there any better way of doing this? My goal is to offload all the logs and metric-related logic to middleware and keep the controller/target method as clean as possible


Источник: https://stackoverflow.com/questions/781 ... beyond-api
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»