Возможно, просто используйте string
:
[XmlText]
public string Link {get;set;}
На данный момент класс рекурсивен (дерево) - я не думаю, что это то, что вы хотели.
(Я также переключился на свойство, но это не проблема - string
- важная персона; но есть много причин использовать свойства вместо полей и с автоматическими свойствами (C # 3.0) есть несколько оправданий, чтобы не делать)
Редактировать: также попробуйте взглянуть на самое внутреннее исключение; в этом случае сообщение:
Невозможно сериализовать элемент 'Link' типа LinksInterface.LinkElement. XmlAttribute / XmlText нельзя использовать для кодирования сложных типов.
Это дает разумное представление о том, где проблема; -p