#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,...