public static XmlSerializer CreateKnownTypeSerializer(Type type, IEnumerable <Type> extraTypes) { var allExtraTypes = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(a => a.GetTypes()) .Where(t => extraTypes.Any(extraType => extraType.IsAssignableFrom(t))); var key = new XmlSerializerKeyWithKnownTypes(type, allExtraTypes); return(XmlSerializerHashTable.DemandSerializer(key, k => ((XmlSerializerKeyWithKnownTypes)k).CreateSerializer())); }
public XmlSerializer GetSerializer() { return(XmlSerializerHashTable.GetSerializer(this)); }