There is no need to implement IXmlSerializable for be xml serializable.
public class Foo
{
public List<string> Names { get; set; }
}
xml will serialize just fine, creating something like:
<?xml version="1.0" encoding="utf-16"?>
<Foo
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Names>
<string>a</string>
<string>b</string>
<string>c</string>
</Names>
</Foo>
whereas
public class Foo<T>
{
public List<T> Names { get; set; }
}
will create
<?xml version="1.0" encoding="utf-16"?>
<FooOfString
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Names>
<string>a</string>
<string>b</string>
<string>c</string>
</Names>
</FooOfString>