Если значение всегда игнорируется, лучше назначить атрибут непосредственно члену.
[Serializable]
[XmlInclude(typeof(Item))]
public class Items
{
[XmlIgnore]
public string Value
}
Если значение условно игнорируется, я подозреваю, что вам лучше удалить элемент из корневого класса перед сериализацией.
Что касается вашего кода, я подозреваю (возможно, я ошибаюсь, потому что я еще не пробовал!) Следующего достаточно:
var overrides = new XmlAttributeOverrides();
var attributes = new XmlAttributes { XmlIgnore = true };
overrides.Add(typeof(Items), "Value", attributes);
serializer = new XmlSerializer(typeof(root), overrides);
Обновление: Я тестировал приведенный выше код. Оно работает. : D
Обновите снова: это должно быть Items
вместо Item
, потому что Value
находится в Items
. Или, если вам нравится это по-другому, это может быть Value
в Item
и Item
полностью.