桌面应用
C#
紧凑框架
一个解决方案中的2个项目
主项目使用DataAccess项目(引用),因为与Database相关的所有内容都在DataAcess项目中 我实际上是连接到两个不同的数据库。
如何制作两个项目都可以使用的“全局”变量? (无需添加引用 - 我不能这样做,因为它将是循环引用)
在网上我有(数据访问部分):
string strConnRSS = System.Configuration.ConfigurationManager.AppSettings["something1"];
string strConnRSS = System.Configuration.ConfigurationManager.AppSettings["something2"];
从web.config获取数据(这是在web prj中):
<appSettings>
<add key="something1" value="server=...;database=...;uid=...;password=...;" />
<add key="something2" value="server=...;database=...;uid=...;password=...;" />
</appSettings>
桌面应用程序中有类似内容吗?
感谢
更新: http://www.eggheadcafe.com/articles/dotnetcompactframework_app_config.asp 这看起来很有帮助,但我们有一个设置页面,您可以在其中更改实际的连接字符串
答案 0 :(得分:1)
不确定我是否愿意使用这种方法。在我决定拥有这样的全局变量之前,我总是会想很久很难,也许有一些更好的设计/架构可以让你解决这个问题? 无论如何,你没有说明你所针对的.Net版本,但这里是3.5的代码示例。
在我的exe中:
private void button1_Click(object sender, EventArgs e)
{
ConfigurationManager.AppSettings.Set("TestData", "TestValue");
string testData = ClassLibrary1.Class1.GetTestData();
if (testData != null )
MessageBox.Show(testData);
else
MessageBox.Show("Not found");
}
在我的课程库中:
public class Class1
{
public static string GetTestData()
{
return ConfigurationSettings.AppSettings["TestData"];
}
}
exe显然引用了类库。
答案 1 :(得分:1)
创建第3个库,为这两个项目提供公共代码,并添加对它的引用。
public static class GlobalVariables
{
public static string SomeCommonVar { get { // read this lib app.config } }
}