En essayant d'utiliser une classe d'excpetion qui pourrait fournir une référence de localisation pour l'analyse XML, un compilateur n'a pas pu choisir entre surcharger qui consomme une interface et qui a besoin de System.Exception lorsque j'essaie de transmettre XmlReader en tant que paramètre.Le compilateur n'a pas pu choisir une surcharge entre l'interface et l'exception
Detais suivent:
//exception overloads:
public FilterXmlParseException(string message, Exception innerException)
: base(message, innerException) { }
public FilterXmlParseException(string message, IXmlLineInfo lineInfo) {...}
//Usage:
XmlReader reader = ...
IXmlLineInfo lineinfo = (IXmlLineInfo)reader;
//fails
throw new FilterXmlParseException("<Filter> element expected", reader);
//ok
throw new FilterXmlParseException("<Filter> element expected", lineinfo);
Et il échoue, car il ne pouvait pas choisir correctement overload.But pourquoi? Nous voyons que XmlReader prend en charge une interface et il n'est pas héritée de System.Exception
pas si simple vraiment, j'utilise XmlTextReader.Create (sreader, readerSettings) Et il me retourne XmlReader. Alors, comment pourrais-je être sûr qu'il supporte Line Info? Encore assez confus –