public class EditingModelConverter : JsonConverter
{
// ...
}
[JsonConverter(typeof(EditingModelConverter))] // Error
public class EditingModel(FrozenDictionary values)
{
// ...
}
Сообщение об ошибке: CS0416:
'EditingModelConverter': аргумент атрибута не может использовать параметры типа
Мои вопросы:
Почему это запрещено? Если я правильно понимаю, общие сведения известны во время компиляции runtime, поэтому их следует считать достаточно «постоянными» для компиляции атрибутов?
Можно ли сделать это без написания фабрики преобразователей? Я думаю, что фабрика будет наиболее подходящим решением, если нет обходного пути?
Сценарий использования: я хочу написать JsonConverter для такого универсального типа, но не могу применить его к самому типу: [code]public class EditingModelConverter : JsonConverter { // ... }
[JsonConverter(typeof(EditingModelConverter))] // Error public class EditingModel(FrozenDictionary values) { // ... } [/code] Сообщение об ошибке: CS0416:
'EditingModelConverter': аргумент атрибута не может использовать параметры типа
Мои вопросы: [list] [*]Почему это запрещено? Если я правильно понимаю, общие сведения известны во время компиляции runtime, поэтому их следует считать достаточно «постоянными» для компиляции атрибутов? [*]Можно ли сделать это без написания фабрики преобразователей? Я думаю, что фабрика будет наиболее подходящим решением, если нет обходного пути? [/list]