2011-05-05 59 views
1

是否可以从一个从exe调用的C#类库中访问App.Config文件?从可执行文件调用的C#程序集中访问App.Config文件

当我们尝试访问配置文件时,我们遇到了错误并且变为空了?我认为它与图书馆调用的创始人有关,除了对类库中的文件系统进行硬编码之外,还有其他解决方法吗?

 try 
     { 
      string cleanupScripts = string.Empty; 
      cleanupScripts = ConfigurationManager.AppSettings["CleanupScripts"]; 

      if (cleanupScripts == null) 
      { 
       throw new System.ApplicationException("Null was returned"); 
      } 
     } 
     catch (Exception ex) 
     { 
      throw (ex); 

     } 

干杯

+1

你能告诉我们相关的配置文件和你用来访问它的代码吗?你应该使用'System.Configuration'中的标准.NET对象和方法,这样做应该没有问题,真的...... – 2011-05-05 05:33:08

+0

......并且你能告诉我们你遇到了什么错误吗? – 2011-05-05 05:50:27

+0

更新到这篇文章,并感谢您的反馈,调用类库的应用程序是一个Ruby命令行,它将标量变量传递给C#库,在库中我们不会读取配置数据(调用应用程序的连接字符串等一无所知)。这是我们无法改变的设计要求。我会从我的开发团队得到的错误,PS我们正在使用System.Configuration – user728584 2011-05-05 06:22:07

回答

0

不知道如果你能做到这一点,但我敢肯定,C#类库允许您使用的资源。 我认为它最适合你的方式是将App.Config作为资源存储,然后通过资源访问App.config。

但我想问题是,为什么你在DLL中存储配置项?为什么不在库上创建构造函数,并在调用C#类库的UI中进行配置。

+0

嘿罗比,我想我将采用这种方法,但只需将stringa(键值对)设置为资源,然后使用.Properties等代码访问它们......谢谢! – user728584 2011-05-05 09:50:45

0

部署时app.config文件复制为ProjectName.exe.config。你应该从类库中读取这个文件。

希望我正确

理解问题

感谢 悟空

+0

我可以在bin \ debug目录中看到ProjectName.exe.config,但它仍然返回null,我的意思是告诉ConfigurationManager.AppSettings在其他位置或使用其他访问运算符? – user728584 2011-05-05 07:27:58

0

这很容易:

首先,你在你的C#项目的属性去

enter image description here

然后参数标签

enter image description here

然后单击创建参数,您选择的名称,类型,值,范围

enter image description here

它在bin文件夹中创建一个XML文件名YourEXEFile.config。然后你可以在你的代码中使用它。或者你可以在你的代码之外修改它。

static void Main(string[] args) 
{ 
    string myP = Properties.Settings.Default.myParam1; 

    Console.WriteLine(myP); 
} 

您可以修改它在你的项目中:

enter image description here

+0

愚蠢的问题,我如何访问属性中的参数部分,当我去项目的属性,我可以看到的是应用程序,生成等...直至签名。我真的很喜欢这种方法,如果我能找到它:) – user728584 2011-05-05 06:17:31

+0

你使用什么样的Visual Studio项目? – JPBlanc 2011-05-05 06:38:54

+0

对不起,Visual Studio 2010中的类库 – user728584 2011-05-05 06:40:36

1

当从一个类库函数读取应用程序配置值,它是阅读的exe的app.config中。总体思路是每个使用库的客户端都应该提供相关的配置。所以,如果你的类库项目中有一个app.config,那永远不会被读取。

相关问题