2009-11-26 47 views
3

我搜索了一下,刚刚发现了大量关于如何设置WCF服务配置的网页,这不是我想要的。WCF服务配置:如何使用C#访问AppSettings的代码使用C#

基本上,我的服务中有一个工厂类,它从配置文件中读取一个Custom属性来确定要创建哪个数据访问对象,但是,每当我尝试测试它时,我都会得到一个NullReferenceException。

下面是代码:

public string Config { get; set; } 

    public ProjectFactory() 
    { 
     Config = ConfigurationManager.AppSettings["ProjectDAOConfig"].ToString(); 
     LoadDAO(); 
    } 

这里是在We.config文件服务的定制属性:

<configuration> 
    <configSections> 
     //Sections removed to make it tidier 
    </configSections> 
    <appSettings> 
     <add key="ProjectDAOConfig" value="stub"/> 
    </appSettings> 
    <connectionStrings/> 

任何为什么不起作用?该属性是否在错误的配置文件中?如果是这样,我应该创建一个App.Config文件作为目前没有?

编辑:我在一个asp.net网站上使用了同样的方法,它工作正常。

回答

6

如果您从网站运行代码,它将从web.config中读取。

如果直接运行代码,它将在代码开始运行的项目中使用app.config。例如,如果你从单元测试运行它,那么它就是单元测试项目的app.config。

+0

啊,这是有道理的,因为它的单元测试失败,并且因为失败我还没有测试过代码。 – Morgeh 2009-11-26 23:11:00

+0

这解决了我的单元测试问题,谢谢。 – Morgeh 2009-11-26 23:13:48