2010-01-18 12 views

cevap

6

Temel olarak uygulamanız doğrulayıcıdır - yapılandırma dosyası geçerli değilse, başlatma sırasında bir istisna alırsınız. Bunun dışında, app.config dosyaları için herhangi bir kullanıma hazır olmayan doğrulama desteğinin farkında değilim.

C:\Program Files\Microsoft Visual Studio 9.0\Xml\Schemas dizininizde, DotNetConfig.xsd/DotNetConfig20.xsd adında bazı dosyalar bulacaksınız - bunlar, Microsoft tarafından sağlanan XML şema dosyalarıdır; bunlar, geçerlilik için sahip olabileceğiniz diğer yapılandırma dosyalarını doğrulamak için kolayca kullanabilirsiniz. programlı şekilde yapılandırmaları doğrulamak için

temel yapısı böyle bir şey olurdu:

using(StreamReader xsdReader = new StreamReader(xsdFileName)) 
{ 
    XmlSchema Schema = new XmlSchema(); 
    Schema = XmlSchema.Read(xsdReader, new ValidationEventHandler(XSDValidationEventHandler)); 

    XmlReaderSettings ReaderSettings = new XmlReaderSettings();  
    ReaderSettings.ValidationType = ValidationType.Schema;     
    ReaderSettings.Schemas.Add(Schema); 

    ReaderSettings.ValidationEventHandler += new ValidationEventHandler(XMLValidationEventHandler); 

    using(XmlTextReader xmlReader = new XmlTextReader(xmlFileName)) 
    { 
     XmlReader objXmlReader = XmlReader.Create(xmlReader, ReaderSettings); 

     while (objXmlReader.Read()) 
     { } 
    } 
} 
Console.WriteLine("Successful validation completed!"); 

Şimdi ne yapmak gerekir doğrulamasında şeyler yanlış gittiğinde kaldırdı olsun bu olay için tedarik olay işleyicileri - yani var hakkında! :-)

0

Çok eski bir soru ama burada aynı soru vardı ve benim kurulumu (yukarı .net framework 3.5 ve) 'dir:

: Bir konsol projesi adı 'ConfigurationValidator' yarattı
  1. static void Main(string[] args) 
    { 
        try 
        { 
         string xsdFileName = ConfigurationManager.AppSettings["configXsdPath"]; 
         string xmlFileName = args[0]; 
    
         XmlSchemaSet schemas = new XmlSchemaSet(); 
         schemas.Add(null, xsdFileName); 
    
         XDocument doc = XDocument.Load(xmlFileName); 
         string validationMessage = string.Empty; 
    
         doc.Validate(schemas, (sender, e) => { validationMessage += e.Message + Environment.NewLine; }); 
    
         if (validationMessage == string.Empty) 
         { 
          Console.WriteLine("CONFIG FILE IS VALID"); 
         } 
         else 
         { 
          Console.WriteLine("CONFIG FILE IS INVALID : {0}", validationMessage); 
         } 
        } 
        catch(Exception ex) 
        { 
         Console.WriteLine("EXCEPTION VALIDATING CONFIG FILE : {0}", ex.Message); 
        } 
    } 
    

ve aşağıdaki app.config:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
    <add key="configXsdPath" value="C:\Program Files (x86)\Microsoft Visual Studio 11.0\Xml\Schemas\DotNetConfig35.xsd"/> 
    </appSettings> 
</configuration> 
.210 örneğin sonrası build olay komut eklemek çözümün her proje için
    1. : doğrulama i aşağıdaki çıktıyı almak başarılı post build command

    : valid config

    doğrulama başarısız olursa, aşağıdaki gibi bir çıktı alıyorum: invalid config

  • İlgili konular