2010-05-04 33 views
0

Ce serait fantastique si vous pouviez m'aider à me débarrasser de ces avertissements ci-dessous. Je n'ai pas réussi à trouver un bon document. Puisque les avertissements sont concentrés dans la section private void ValidateConfiguration(XmlNode section), j'espère que ce n'est pas si difficile à répondre si vous l'avez déjà rencontré.Aidez-moi à convertir le code de validation .NET 1.1 Xml en .NET 2.0 s'il vous plaît

Merci!

'System.Configuration.ConfigurationException.ConfigurationException(string)' is obsolete: 'This class is obsolete, to create a new exception create a System.Configuration!System.Configuration.ConfigurationErrorsException' 

'System.Xml.XmlValidatingReader' is obsolete: 'Use XmlReader created by XmlReader.Create() method using appropriate XmlReaderSettings instead. http://go.microsoft.com/fwlink/?linkid=14202'  

private void ValidateConfiguration(XmlNode section) 
{     
    // throw if there is no configuration node. 
    if(null == section) 
    { 
     throw new ConfigurationException("The configuration section passed within the ... class was null ... there must be a configuration file defined.", section); 
    } 
    //Validate the document using a schema 
    XmlValidatingReader vreader = new XmlValidatingReader(new XmlTextReader(new StringReader(section.OuterXml))); 
    // open stream on Resources; the XSD is set as an "embedded resource" so Resource can open a stream on it 
    using (Stream xsdFile = XYZ.GetStream("ABC.xsd")) 
    using (StreamReader sr = new StreamReader(xsdFile)) 
    { 
     vreader.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); 
     vreader.Schemas.Add(XmlSchema.Read(new XmlTextReader(sr), null)); 
     vreader.ValidationType = ValidationType.Schema; 
     // Validate the document 
     while (vreader.Read()) { } 

     if (!_isValidDocument) 
     { 
      _schemaErrors = _sb.ToString(); 
      throw new ConfigurationException("XML Document not valid"); 
     } 
    } 
} 

// Does not cause warnings. 
private void ValidationCallBack(object sender, ValidationEventArgs args) 
{ 
    // check what KIND of problem the schema validation reader has; 
    // on FX 1.0, it gives a warning for "<xs:any...skip" sections. Don't worry about those, only set validation false 
    // for real errors 
    if(args.Severity == XmlSeverityType.Error) 
    { 
     _isValidDocument = false; 
     _sb.Append(args.Message + Environment.NewLine); 
    } 
} 
+1

Avez-vous essayé de faire les changements suggérés dans les mises en garde? Si oui, avez-vous eu des problèmes? –

+1

Je pense qu'il cherche comment faire ces changements. Le lien fourni dans l'avertissement n'est pas utile. –

+1

Vous n'avez pas besoin de convertir de C# 1.1 à C# 2.0 (d'autant plus qu'il n'y a pas de C# 1.1). Vous devez convertir .NET 1.1 en .NET 2.0. –

Répondre

1
  1. Remplacer throw new ConfigurationException(....) avec

    throw new ConfigurationErrorsException(....)

  2. Remplacer XmlValidatingReader vreader = new XmlValidatingReader(...) avec


var vreader = XmlReader.Create(new StringReader(section.OuterXml), 
           new XmlReaderSettings 
           { 
            ValidationType = ValidationType.Schema 
           }); 
1

Fondamentalement, il vous dit d'utiliser le XmlReaderSettings au lieu du XmlValidatingReader, qui a été dépréciée.

Personnellement, je ne vais pas faire la conversion, je pense que vous en train de faire ce sera bon pour votre développement de codage, alors voici quelques ressources:

Regardez les surcharges de la méthode XmlReader.Create(), en particulier this one.

Puis un regard sur les différentes propriétés associées à la classe XmlReaderSettings: http://msdn.microsoft.com/en-us/library/system.xml.xmlreadersettings_members.aspx

Donnez-lui un essai, voir ce qui se passe et si votre rencontrez toujours des problèmes, poser une autre question :)

HTH