Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Monodevelop支持配置文件吗?_C#_Mono_Monodevelop - Fatal编程技术网

C# Monodevelop支持配置文件吗?

C# Monodevelop支持配置文件吗?,c#,mono,monodevelop,C#,Mono,Monodevelop,我在C#mono项目中添加了一个app.config文件 在我使用的项目中 foreach (string key in ConfigurationManager.AppSettings) { string value = ConfigurationManager.AppSettings[key]; Console.WriteLine("Key: {0}, Value: {1}", key, value); } 配置文件如下所示 <?xml version="1.0" encoding=

我在C#mono项目中添加了一个app.config文件

在我使用的项目中

foreach (string key in ConfigurationManager.AppSettings)
{
string value = ConfigurationManager.AppSettings[key];
Console.WriteLine("Key: {0}, Value: {1}", key, value);
}
配置文件如下所示

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Key1" value="Kevin" />
<add key="Key2" value="150" />
<add key="Key3" value="Rice" />
</appSettings>
</configuration>


没有检测到钥匙。如何读取配置值

这个答案来得太晚了,但是对于任何遇到这个问题的人来说,是的,mono确实支持配置文件。您可以使用上面讨论的ConfigurationManager方法,甚至可以在app.config文件中创建自己的自定义设置部分,并通过从ApplicationSettingsBase派生的类对其进行操作。在我看来,这是处理app.config文件更自然的方法,因为您使用的是类和强类型属性,而不是像ConfigurationManager那样从数组中访问字符串。为应用程序设置创建一个类也很容易。下面是MSDN页面,解释如何创建类:


Mono需要注意的唯一一点是,.NET Framework允许在app.config文件中定义UserScopedSettings(以提供默认值),但如果这样做,Mono将抛出异常。解决方法是将UserScopedSettings保留在app.config文件之外,只在代码中定义属性的默认值。这不是一个完美的解决方案,因为它没有提供在代码之外更改默认值的方法,但在大多数情况下这就足够了

您应该使用ConfigurationManager写入密钥,然后使用ConfigurationManager将其读回。如果成功,请查找它生成的XML文件。@robert-但我只需要从文件中读取配置值。如果我的建议成功,您将知道XML文件应该位于何处,以及它应该如何正确格式化。一旦你知道了这一点,你可以手动创建文件。有三种可能:1)它创建了一个文件,但你还没有找到它;2)它没有创建一个文件,你不能做你想做的事情;3)它将信息存储在一个已经在其他地方创建的文件中。我知道了,它在调试目录中,我必须设置配置文件以覆盖它。10倍