Создание атрибута информации о вызывающем абоненте

#c# #attributes

#c# #атрибуты

Вопрос:

Насколько я знаю, начиная с C # 5.0 есть некоторый атрибут информации о вызывающем абоненте, такой как [CallerMemberName] , [CallerFilePath] .

Есть ли хороший способ создать такой новый атрибут?

Я хочу изменить

 public void Regist<T>(object recipient, Action<T> action)
  

чтобы это понравилось.

 public void Regist<T>([CallerObject]object recipient, Action<T> action)
  

Спасибо.

Комментарии:

1. Вы задаете неправильный вопрос. Во-первых, нет, вы не можете, ну, если вы не хотите редактировать компилятор (однако нам нужно было бы увидеть проблему, которую вы на самом деле пытаетесь решить). Во-вторых, вы должны задавать вопрос о вашей конкретной проблеме и позволять людям, которые хорошо знают язык и его возможности, предлагать решения

2. Спасибо за комментарий. Я отредактировал свой вопрос более подробно. Но вы звучали так, как будто нет никакого способа.

3. То есть вам нужен просто вызывающий класс?

4. ДА. Я продолжаю указывать получателя на «это». Я думаю, что это действительно плохо. Я надеюсь, что есть хороший способ упростить это.

5. Думали ли вы о методе расширения и может ли это помочь? Regist<T>(this object recipient,...