Используя XML serializer, я пытаюсь заставить атрибут ArrayItem знать имя обобщенного c типа, чтобы настроить имена элементов Xml и логи c для каждого конкретного типа:
Допустим, у меня есть класс:
public class A<T>
{
[XmlArray("Resource")]
[XmlArrayItem(typeof(T).Name)]
public List<T> ItemsList { get; set; }
}
Этот подход недопустим, учитывая, что аргумент атрибута не может быть значением времени выполнения; typeof(T).Name
в этом случае.
Есть ли обходной путь для этой ситуации?
Если нет, можно ли использовать атрибут [XmlArray]
в классе A
и указать [XmlArrayItem("ThisTypeName")]
отдельно в других классах, в которых аргумент может быть жестко закодирован как постоянная строка "ThisTypeName"
.