从控制台应用程序共享设置

时间:2014-01-16 14:13:30

标签: c# visual-studio-2010 application-settings data-sharing

我在C#中有2个控制台应用程序: App1 App2 ,设置属性访问权限设置为公开,我按照一些说明操作:

1.-我从App1

设置属性设置App2'名称'
App2.Properties.Settings.Default.Name = "John"

2.-我运行App1并按预期打印我们的App2.Name属性设置。

App2.Properties.Settings.Default.Name

3.-我运行App2,以测试是否从App1保存了属性。 它没有显示属性值:John

Properties.Settings.Default.Name

问题:

  • 为什么属性保存正确并显示在App1范围内,但是当我运行App2(已声明属性名称)时没有?

  • 如果我的方法无效;我可以从外部控制台应用程序设置设置属性吗?

1 个答案:

答案 0 :(得分:0)

您可以使用一些XML操作,而不是引用2个控制台应用程序:

using System.Linq;
using System.Xml.Linq;

namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
        var file = @"C:\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe.config";

        var doc = XDocument.Load(file);

        var desc = doc.Root.Descendants("setting")
            .Where(s => s.Attributes()
                .Any(y => y.Value == "Name")).Descendants("value");

        desc.First().Value = "NewName";

        doc.Save(file);
    }
}

}

在此代码段中,配置文件的路径是硬连线的。您还可以使用注册表,另一个文件,其中App2说出它的设置文件所在的位置或其他任何共享字符串的文件。