2010-12-14 12 views
5

Utworzono niestandardową sekcję konfiguracji dla mojej aplikacji. Z jakiegoś powodu Visual Studio 2010 nie zbiera się i moich niestandardowych właściwości. Dostaję ostrzeżenie podobne do tego dla wszystkich przycisków "Dodaj":App.Config Niestandardowy problem z sekcją konfiguracji

Could not find schema information for the element 'urlFilterSection' 

plik konfiguracyjny:

<configSections> 
    <section name="urlFilterSection" type="BotFinderApp.Models.UrlFilterSection, BotFinder" /> 
</configSections> 

<urlFilterSection> 
    <urlFilterCollection> 
     <add url="urlhere.com.au" numberOfIpsToExtract="10" /> 
     <add url="urlhere.com.au" numberOfIpsToExtract="10" /> 
     <add url="urlhere.com.au" numberOfIpsToExtract="10" /> 
     <add url="urlhere.com.au" numberOfIpsToExtract="10" /> 
     <add url="urlhere.com.au" numberOfIpsToExtract="10" /> 
     <add url="urlhere.com.au" numberOfIpsToExtract="10" /> 
     <add url="urlhere.com.au" numberOfIpsToExtract="10" /> 
     <add url="urlhere.com.au" numberOfIpsToExtract="10" /> 
     <add url="urlhere.com.au" numberOfIpsToExtract="10" /> 
    </urlFilterCollection> 
</urlFilterSection> 

UrlFilterSection:

namespace BotFinderApp.Models 
{ 
    public class UrlFilterSection : ConfigurationSection 
    { 
     public UrlFilterSection() 
     {  
     } 

     [ConfigurationProperty("urlFilterCollection", IsDefaultCollection = false)] 
     [ConfigurationCollection(typeof(UrlFilterCollection), AddItemName = "add", ClearItemsName = "clear", RemoveItemName = "remove")] 
     public UrlFilterCollection Urls 
     { 
      get 
      { 
       var urlsCollection = (UrlFilterCollection)base["urlFilterCollection"]; 
       return urlsCollection; 
      } 
     } 
    } 
} 

UrlFilterCollection

namespace BotFinderApp.Models 
{ 
    public class UrlFilterCollection : ConfigurationElementCollection 
    { 
     public UrlFilterCollection() 
     { 
     } 

     protected override ConfigurationElement CreateNewElement() 
     { 
      return new UrlFilter(); 
     } 

     protected override object GetElementKey(ConfigurationElement element) 
     { 
      return ((UrlFilter)element).Url; 
     } 
    } 
} 

URLFilter

namespace BotFinderApp.Models 
{ 
    public class UrlFilter : ConfigurationElement 
    { 
     public UrlFilter() 
     { 
     } 

     [ConfigurationProperty("url", DefaultValue = "", IsRequired = true)] 
     public string Url 
     { 
      get { return (string)this["url"]; } 
      set { this["url"] = value; } 
     } 

     [ConfigurationProperty("numberOfIpsToExtract", DefaultValue = "0", IsRequired = true)] 
     public int NumberOfIpsToExtract 
     { 
      get { return (int)this["numberOfIpsToExtract"]; } 
      set { this["numberOfIpsToExtract"] = value; } 
     } 
    } 
} 
+1

Czy możesz go użyć w swojej aplikacji? Chodzi mi o to, czy są to tylko ostrzeżenia dotyczące czasu kompilacji, czy nie możesz ich użyć w swojej aplikacji? – decyclone

+0

UrlFilterCollection serviceConfigSection = ConfigurationManager.GetSection ("urlFilterSection") jako UrlFilterCollection; zwraca zero ... – timothyclifford

Odpowiedz

3

Znaleziony problem:

Decyclone była prawidłowa, błędy były w rzeczywistości tylko skompilować ostrzeżenia czasowych.

Prawdziwym problemem było to, że była moją konfigurację dostępu tak:

UrlFilterCollection serviceConfigSection = ConfigurationManager.GetSection("urlFilterSection") as UrlFilterCollection; 

kiedy powinno być jak ten

UrlFilterSection serviceConfigSection = ConfigurationManager.GetSection("urlFilterSection") as UrlFilterSection; 

Dziękuję FlipScript i Decyclone :)

UPDATE:

Dowiedziałem się, jak usunąć ostrzeżenia o czasie kompilacji - Używam g Visual Studio 2010. Po utworzeniu sekcji konfiguracji niestandardowych użyłem przycisku "Create Schema" na pasku narzędzi, który generuje plik schematu dla konfiguracji. Następnie zapisałem to do mojego projektu i ostrzeżenia zniknęły.

Powiązane problemy