Можно ли использовать общий аргумент типа для его атрибута? [дубликат]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
Ответить

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

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

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

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

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