Я отримую "відсутність директиви щодо використання або збірки" і немає підказки про те, що відбувається неправильно

Я намагаюся дозволити користувачеві вводити дані в текстове поле, яке буде додано до файлу web.config. Я додав відповідні рядки до файлу web.config, але коли я роблю цей клас, все йде не так.

Я постійно отримую повідомлення про відсутність директиви щодо використання або помилки модифікації, коли я намагаюся запустити мою програму. Я подивився на інші випадки, коли це питання було задано, і я не можу зрозуміти, де я йду неправильно. Справа в тому, що я є надзвичайно новим для Visual Studio, і я просто залишений порожнім, на що може стати відповідь.

Нижче наведено файл класу, який генерує помилку. Я сподіваюся, що я включив все, що вам потрібно, щоб допомогти мені. Дякую.

 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 
                Elements;         
    static CompaniesConfig()       
    {         
                Elements = new Dictionary();       
                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 Companies        
            {          
                get
                {
                    return Elements.Values.ToList(); 
                }      
            }  
}
}  '

Будь-яка допомога цінується

9
Чи можете ви сказати нам, де ви отримуєте помилку
додано Автор Microsoft DN, джерело
Яка лінія генерує помилку?
додано Автор ic3b3rg, джерело
Ви маєте кілька речей:
додано Автор fraballi, джерело
Керівництво: 1) монтаж завантажений? 2) збірка завантажених матчів з початковим збором ?, 3) «використання» директив, що вказують на старі або недійсні посилання ?, 4). Manifest csproj містить джерело недійсним ?, 5) пошуковий інструмент, що виглядає регулярним виразом у всьому рішенні (кожна бібліотека класів та проект). 5) перевірити параметри проекту для варіанта побудови версії чистої конструкції (співпрацювати в командах привести до такого роду проблем, ви повинні узгоджувати чистий аркуш версії збірки з обох сторін) 6) Після цього очистити і побудувати кожен окремо і, нарешті, включити всі посилання до цільової бібліотеки проекту/класу. Я повинен працювати!
додано Автор fraballi, джерело

6 Відповіді

Ви, напевно, не маєте dll System.Configuration до посилання проекту. За замовчуванням там немає, і ви повинні додати його вручну.

Клацніть правою кнопкою миші на посилання та знайдіть System.Configuration у вузлах .net.

Перевірте, чи знаходиться він у ваших посиланнях ...

enter image description here

Клацніть правою кнопкою миші та виберіть Додати посилання ...

enter image description here

Знайдіть System.Configuration у списку .Net Assemblies, виберіть його та натисніть Ok ... .

enter image description here

Тепер збірка має з'явитися у ваших посиланнях ...

enter image description here

16
додано
добре, так що system.configuration dll вже буде там?
додано Автор Scubacode, джерело
Так, це, мабуть, причина.
додано Автор Abijeet Patro, джерело
Ви також можете ознайомитись з цією msdn.microsoft.com/en-us/library /vstudio/wkze6zky.aspx
додано Автор Lucas, джерело
Керівництво: 1) монтаж завантажений? 2) збірка завантажених матчів з початковим збором ?, 3) «використання» директив, що вказують на старі або недійсні посилання ?, 4). Manifest csproj містить джерело недійсним ?, 5) пошуковий інструмент, що виглядає регулярним виразом у всьому рішенні (кожна бібліотека класів та проект). 5) перевірити параметри проекту для варіанта побудови версії чистої конструкції (співпрацювати в командах привести до такого роду проблем, ви повинні узгоджувати чистий аркуш версії збірки з обох сторін) 6) Після цього очистити і побудувати кожен окремо і, нарешті, включити всі посилання до цільової бібліотеки проекту/класу. Я повинен працювати!
додано Автор fraballi, джерело

.Net framework DLL-посилання повинна бути такою ж, як і версію .Net в. Проект, в якому згадується DLL

2
додано

Я спостерігав цитату ' у першому рядку, а також наприкінці останнього рядка.

'using System.Collections.Generic;

Чи присутня це в оригінальному коді або в помилці форматування?

0
додано
ні, це не нове для цього сайту і з'явилося спливаюче повідомлення про те, щоб додати їх, щоб він правильно форматував у моєму питанні
додано Автор Scubacode, джерело

Ця проблема буде спричинена вашою програмою, якщо відсутня посилання на зовнішню DLL, яку ви намагаєтесь використовувати з коду. Зазвичай Visual Studio повинна дати вам уявлення про те, які об'єкти не знають, з чим займатися, щоб бути кроком у правильному напрямку.

You need to look in the solution explorer and right click on project references and then go to add -> and look up the one you need. It's most likely the System.Configuration assembly as most people have pointed out here while should be under the Framework option in the references window. That should resolve your issue.

0
додано

Ви використовуєте виклади виглядають правильними.

Можливо, вам не вистачає посилання на атрибути System.configuration.dll ?

Клацніть правою кнопкою миші папку "References" у вашому проекті та натисніть на "Додати посилання ..."

0
додано
Чи буде system.configuration.dll бути там? вибач, такий ноуб. Чи створює Visual Studio для вас dll?
додано Автор Scubacode, джерело
@Cubacode Схоже, Джон Крафт надав чудові зображення про те, де можна знайти збірку!
додано Автор Samuel Parkinson, джерело

Я мав ту ж проблему раніше сьогодні. Я не міг зрозуміти, чому файл класу, який я намагався знайти, був невидимим компілятором. Нещодавно я змінив простір імен файлу класу, про який йде мова, в інший, але вже існуючий простір імен. (Я також мав використання посилань на нові та попередні простір імен класу, де я намагався проаналізувати його)

Де компілятор сказав мені, що я пропускав посилання, коли намагався показати клас, я клацнув правою кнопкою миші та натиснув кнопку "породити клас". Після того, як Visual Studio створив для мене класовий значок, я впорав та вставив код з старого файлу класу в цей заголовок, збережений заглушник, і коли я спробував скомпілювати, він знову працював! Немає питань.

Може бути рішенням, специфічним для моєї сборки, але варто спробувати.

0
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug