Ваша конечная цель - не включать тег GenerationMethod
в XML в случае, если IEnumerable пуст.
Поэтому я предлагаю вам точно обработать это, а не изменять метод, возвращающий IEnumerable
.
IEnumerable
как кошка Шредингера. У него есть все предметы и вообще нет предметов, и только когда вы фактически перечислите, вы будете точно знать, какие предметы он даст.
Таким образом, возвращая нуль вместо IEnumerable
, вы не сможете понять цель IEnumerable
.
Итак, чтобы ответить на ваш вопрос, создайте свой собственный сериализатор xml ( Вот ответ на SO о том, как вы можете достичь этого , или просто посмотрите его. Это должно быть довольно прямовперед). Все, что вам нужно сделать, это изменить способ записи IEnumerable
в XML.
Логика должна быть довольно простой:
- Вызвать метод расширения
.ToList()
на вашем IEnumerable
для его перечисления. - Если в списке есть элементы, создайте тег и добавьте теги обычным способом.
- Ничего не делайте, если список пуст.
Надеюсь, это даст вам направление, которое вы ищете.