2013-06-27 10 views
7

Próbuję zezwolić użytkownikowi na wprowadzanie danych do pola tekstowego, które zostanie dodane do pliku web.config. Dodałem linie relevent do pliku web.config, ale gdy zrobię tą klasę wszystko pójdzie nie tak.Otrzymuję "brakującą instrukcję użycia lub odniesienie do zespołu" i nie mam pojęcia, co się dzieje źle

Wciąż uzyskuję brakujące informacje o używaniu dyrektywy lub błędu refela zespołu podczas próby uruchomienia mojej aplikacji. Przyjrzałem się innym sytuacjom, kiedy zadawano to pytanie i nie mogę się domyślić, gdzie idę źle. Rzecz w tym, że jestem niezmiernie nowy w Visual Studio i jestem po prostu pozostawiony pusty, co może być odpowiedzią.

Poniżej znajduje się plik klasy, który generuje błąd. Mam nadzieję, że zawarłem wszystko, co potrzebujesz, aby mi pomóc. Dziękuję Ci.

using System.Collections.Generic; 
using System.Linq; 
using System.Configuration; 


namespace WebConfigDemo 
{  
public class CompanyConfigSection : ConfigurationSection 
{  
    [ConfigurationProperty("", IsRequired = true, IsDefaultCollection = true)] 
    public CompanyConfigCollection Companies  
    { 
     get   
     {    
     return (CompanyConfigCollection)this[""];   
     }    
     set    
     {    
      this[""] = value;    
     }  
    } 
}  
public class CompanyConfigElement : ConfigurationElement 
{  
       [ConfigurationProperty("id", IsKey = true, IsRequired = true)]   
    public int Id   
       {    
        get  
       {     
         return (int)this["id"];    
        }    
        set   
        {    
         this["id"] = value;   
       }  
       }   
    [ConfigurationProperty("name", IsRequired = true)]   
    public string Name   
    {    
     get   
     {    
        return this["name"].ToString();    
     }   
     set   
     {    
      this["name"] = value;   
     }  

    } 
} ' 
public class CompanyConfigCollection : ConfigurationElementCollection  
{  
    protected override ConfigurationElement CreateNewElement()  
{   
    return new CompanyConfigElement();  
    }  
    protected override object GetElementKey(ConfigurationElement element)  
    {   
     return ((CompanyConfigElement)element).Id;   
    } 
}  
public class CompaniesConfig 
{  
      private static readonly Dictionary<int, CompanyConfigElement> 
       Elements;   
    static CompaniesConfig()  
    {   
       Elements = new Dictionary<int, CompanyConfigElement>();  
       var section = (CompanyConfigSection)ConfigurationManager.GetSection   ("companies");   
       foreach (CompanyConfigElement system in section.Companies)   
        Elements.Add(system.Id, system);  
    }   
    public static CompanyConfigElement GetCompany(int companyId)  
    {   
         return Elements[companyId]; 
    }  
      public static List<CompanyConfigElement> Companies   
      {   
       get 
       { 
        return Elements.Values.ToList(); 
       }  
      } 
} 
} ' 

Każda pomoc jest mile widziana

+1

generuje błąd, który wiersz? – ic3b3rg

+0

Czy możesz nam powiedzieć, gdzie otrzymujesz błąd –

+0

Musisz kilka rzeczy: –

Odpowiedz

15

Prawdopodobnie nie mają dll System.Configuration dodane do odesłania projektu. Nie ma go domyślnie i musisz dodać go ręcznie.

Kliknij prawym przyciskiem myszy Referencje i wyszukaj System.Configuration w zespołach .net.

Sprawdź, czy to jest w twoich referencji ...

enter image description here

prawym przyciskiem myszy i wybierz polecenie Add Reference ...

enter image description here

Znajdź System.Configuration na liście Zespołów .Net, zaznacz go i kliknij Ok ...

enter image description here

Zespół powinien pojawić się w swoich referencji ...

enter image description here

+0

Tak, to prawdopodobnie powód. –

+0

Możesz również przeczytać ten http://msdn.microsoft.com/en-us/library/vstudio/wkze6zky.aspx – Lucas

+0

ok, więc system.configuration dll już tam będzie? – Scubacode

0

Ty using wypowiedzi pojawiają się prawidłowe.

Być może brakuje odniesienia do zespołu do System.configuration.dll?

prawym przyciskiem folder „referencyjne” w projekcie i kliknij „Add Reference ...”

+0

Czy system.configuration.dll już tam jest? przepraszam, taki noob. Czy Visual Studio tworzy dla ciebie bibliotekę DLL? – Scubacode

+0

@Scubacode Wygląda na to, że John Kraft udostępnił świetne zdjęcia na temat tego, gdzie można znaleźć zestaw! –

0

Ten problem byłby spowodowany przez aplikację brakującego odniesienie do zewnętrznego dll, który próbujesz użyć kodu od. Zwykle Visual Studio powinno dać ci pojęcie o tym, z którymi obiektami nie wie, co zrobić, aby był krokiem we właściwym kierunku.

Musisz zajrzeć do eksploratora rozwiązań i kliknąć prawym przyciskiem myszy na referencje projektu, a następnie przejść do dodania -> i wyszukać to, czego potrzebujesz. Najprawdopodobniej jest to zestaw System.Configuration jak większość ludzi wskazał tutaj, podczas gdy powinien być pod opcją Framework w oknie referencji. To powinno rozwiązać twój problem.

0

Zauważyłem wycenę ' w pierwszej linii, a także na końcu ostatniej linii.

'using System.Collections.Generic; 

Czy jest obecny w oryginalnym kodzie lub błędem formatowania?

+0

nie, nie jest nowa na tej stronie i wyskakujące okienko z informacją, że należy je dodać, aby poprawnie sformatować w moim pytaniu – Scubacode

0

Miałem ten sam problem wcześniej dzisiaj. Nie mogłem się domyślić, dlaczego plik klasy, do którego próbowałem się odwołać, nie był widziany przez kompilator. Niedawno zmieniłem przestrzeń nazw danego pliku klasy na inną, ale już istniejącą przestrzeń nazw. (Używałem także odniesień do nowej i poprzedniej przestrzeni nazw klasy, w której próbowałem ją utworzyć).

Gdzie kompilator powiedział mi, że brakowało mi odwołania podczas próby utworzenia instancji klasy, kliknąłem prawym przyciskiem i kliknąłem "generuj klasa ". Po utworzeniu przez Visual Studio kodu pośredniego dla klasy, skopiowałem i wkleiłem kod ze starego pliku klasy do tego kodu pośredniczącego, zapisałem kod pośredniczący i gdy próbowałem go skompilować ponownie, działało! Nie ma problemów.

Może być rozwiązaniem specyficznym dla mojej kompilacji, ale warto spróbować.

1

.Net framework DLL odsyłania powinien być taki sam jak w wersji .NET Framework Projektu, w którym dll mowa

Powiązane problemy