Можно ли использовать общий аргумент типа для его атрибута? [дубликат]C#

Место общения программистов C#
Anonymous
Можно ли использовать общий аргумент типа для его атрибута? [дубликат]

Сообщение Anonymous »

Сценарий использования: я хочу написать JsonConverter для такого универсального типа, но не могу применить его к самому типу:

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

public class EditingModelConverter : JsonConverter
{
// ...
}

[JsonConverter(typeof(EditingModelConverter))] // Error
public class EditingModel(FrozenDictionary values)
{
// ...
}
Сообщение об ошибке: CS0416:

'EditingModelConverter': аргумент атрибута не может использовать параметры типа

Мои вопросы:
  • Почему это запрещено? Если я правильно понимаю, общие сведения известны во время компиляции runtime, поэтому их следует считать достаточно «постоянными» для компиляции атрибутов?
  • Можно ли сделать это без написания фабрики преобразователей? Я думаю, что фабрика будет наиболее подходящим решением, если нет обходного пути?


Подробнее здесь: https://stackoverflow.com/questions/798 ... -attribute

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