25

我试图允许用户将数据输入到将添加到 web.config 文件的文本框中。我已将相关行添加到 web.config 文件中,但是当我创建此类时,一切都出错了。

每当我尝试运行我的应用程序时,我都会不断收到您是否缺少 using 指令或程序集引用错误。我看过其他时候有人问过这个问题,但似乎无法弄清楚我哪里出错了。问题是我对 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<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(); 
                }      
            }  
}
}  '

任何帮助表示赞赏

4

10 回答 10

29

您可能没有将 System.Configuration dll 添加到项目引用中。默认情况下它不存在,您必须手动添加它。

右键单击 References 并在 .net 程序集中搜索 System.Configuration。

检查它是否在您的参考文献中...

在此处输入图像描述

右键单击并选择添加引用...

在此处输入图像描述

在 .Net 程序集列表中找到 System.Configuration,选择它,然后单击确定...

在此处输入图像描述

该程序集现在应该出现在您的参考文献中......

在此处输入图像描述

于 2013-06-27T13:22:20.373 回答
10

引用dll的.Net框架应与引用dll的项目的.Net框架版本相同

于 2017-04-20T05:54:42.660 回答
1

如果您尝试了上述解决方案并没有找到答案,请确保所有项目的 .NET 版本都相同。

我在将 .NET 4.6.1 版导入 .NET 4.6.2 版项目时遇到了这个问题。没有来自 Visual Basic 的任何警告!

更多信息:找不到类型或命名空间名称

于 2022-02-07T19:19:30.533 回答
0

你的using陈述似乎是正确的。

您是否可能缺少对 的程序集引用System.configuration.dll

右键单击项目中的“参考”文件夹,然后单击“添加参考...”

于 2013-06-27T13:23:36.183 回答
0

此问题可能是由于您的应用程序缺少对您尝试从中使用代码的外部 dll 的引用。通常,Visual Studio 应该让您了解它不知道如何处理哪些对象,这应该是朝着正确方向迈出的一步。

您需要查看解决方案资源管理器并右键单击项目引用,然后转到添加 -> 并查找您需要的那个。正如大多数人在这里指出的那样,它很可能是 System.Configuration 程序集,而它应该位于参考窗口中的 Framework 选项下。那应该可以解决您的问题。

于 2013-06-27T13:24:06.843 回答
0

'我在您的第一行和最后一行的末尾都观察到了一句话。

'using System.Collections.Generic;

这是否存在于您的原始代码中或某些格式错误?

于 2013-06-27T13:42:02.117 回答
0

我今天早些时候遇到了同样的问题。我无法弄清楚为什么我试图引用的类文件没有被编译器看到。我最近将相关类文件的名称空间更改为不同但已经存在的名称空间。(我还使用了对我试图实例化它的类的新命名空间和以前命名空间的引用)

编译器告诉我在尝试实例化类时缺少引用,我右键单击并点击“生成类存根”。一旦 Visual Studio 为我生成了一个类存根,我就处理并将旧类文件中的代码粘贴到这个存根中,保存了存根,当我再次尝试编译时它工作了!没有问题。

可能是特定于我的构建的解决方案,但值得一试。

于 2013-06-28T01:39:59.037 回答
0

在某些情况下,当using明显添加了必要且工作室无法看到此命名空间时,工作室重启可以节省时间。

于 2020-09-02T12:19:55.840 回答
0

我收到有关 .NET 框架中不同版本的警告;我忽略了他们。

该项目编译良好,可以更改解决方案的属性。

于 2021-12-08T19:07:00.563 回答
-3

以下技术对我有用:

1)右键单击项目解决方案->单击清洁解决方案

2)右键单击项目解决方案->单击重建解决方案

于 2019-12-20T17:37:24.713 回答