我在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(已声明属性名称)时没有?
如果我的方法无效;我可以从外部控制台应用程序设置设置属性吗?
答案 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说出它的设置文件所在的位置或其他任何共享字符串的文件。