Передача параметра в классе атрибута через подрядчика ⇐ C#
-
Anonymous
Передача параметра в классе атрибута через подрядчика
В моем приложении C# я пытаюсь передать параметр классу Attribute через конструктор. Но ошибка компилятора Вот класс Attribute
общедоступный класс ManageApplicationInsightsAttribute: JobFilterAttribute, IServerFilter { частный ILogger _logger; частный TelemetryClient _telemetryClient; public ManageApplicationInsightsAttribute (TelemetryClient telemetryClient) { _logger = регистратор; _telemetryClient = телеметрияКлиент; } void IServerFilter.OnPerformed (PerformedContext filterContext) { Console.WriteLine("В OnPerformed"); } void IServerFilter.OnPerforming(PerformingContext filterContext) { Console.WriteLine("При выполнении"); } } Вот класс использования, в котором я пытаюсь передать объект TelemetryClient
общедоступный класс MyJob: IBackgroundJob { частный TelemetryClient _telemetryClient; общедоступный MyJob (TelemetryClient telemetryClient) { _telemetryClient = телеметрияКлиент; } [ManageApplicationInsights(_telemetryClient)] публичное асинхронное выполнение задачи() { дождитесь _client.ProcessAllAsync(100); } } Я получаю сообщение об ошибке:
•CS0655: «telemetryClient» не является допустимым аргументом именованного атрибута, поскольку он не является допустимым типом параметра атрибута. Что мне здесь не хватает?
Заранее спасибо.
Я погуглил. Но подходящего решения не найдено.
В моем приложении C# я пытаюсь передать параметр классу Attribute через конструктор. Но ошибка компилятора Вот класс Attribute
общедоступный класс ManageApplicationInsightsAttribute: JobFilterAttribute, IServerFilter { частный ILogger _logger; частный TelemetryClient _telemetryClient; public ManageApplicationInsightsAttribute (TelemetryClient telemetryClient) { _logger = регистратор; _telemetryClient = телеметрияКлиент; } void IServerFilter.OnPerformed (PerformedContext filterContext) { Console.WriteLine("В OnPerformed"); } void IServerFilter.OnPerforming(PerformingContext filterContext) { Console.WriteLine("При выполнении"); } } Вот класс использования, в котором я пытаюсь передать объект TelemetryClient
общедоступный класс MyJob: IBackgroundJob { частный TelemetryClient _telemetryClient; общедоступный MyJob (TelemetryClient telemetryClient) { _telemetryClient = телеметрияКлиент; } [ManageApplicationInsights(_telemetryClient)] публичное асинхронное выполнение задачи() { дождитесь _client.ProcessAllAsync(100); } } Я получаю сообщение об ошибке:
•CS0655: «telemetryClient» не является допустимым аргументом именованного атрибута, поскольку он не является допустимым типом параметра атрибута. Что мне здесь не хватает?
Заранее спасибо.
Я погуглил. Но подходящего решения не найдено.
Мобильная версия