, T . , , , overriden (, ).
new() . (, IConstructFromXml), , - .
, factory . factory . - :
void Foo<TFactory, T>() where TFactory : IFactory<T>
where TFactory : new() {
var factory = new TFactory();
T val = factory.Create(xmlNode);
}
IFactory<T> :
interface IFactory<T> {
T Create(XmlNode node);
}
Foo , factory ( ), , ..