我需要能够在app.config文件中定义日期。我该怎么做,然后使用c#?
检索它答案 0 :(得分:11)
将值存储在配置文件中:
<appSettings>
<add key="DateKey" value="2012-06-21" />
</appSettings>
然后检索您使用的值:
var value = ConfigurationSettings.AppSettings["DateKey"];
var appDate = DateTime.Parse(value);
答案 1 :(得分:4)
在Visual Studio中使用“设置”很容易。只需打开项目属性即可添加设置,然后转到Settings
并单击&#34;项目不包含默认设置文件。点击此处创建一个。&#34;。
转到“设置”并添加日期时间并定义date
。
要访问代码中的设置,您只需执行此操作。
DateTime myDate = Properties.Settings.Default.MyDate;
答案 2 :(得分:3)
不确定如果我完全理解你的问题。我想你想:
您可以在appSettings部分的 app.config 中定义日期:
<appSettings>
<add key="DateX" value="21/06/2012"/>
</appSettings>
通过执行与此类似的操作来检索AppSettings条目:
Datetime dateX;
System.Configuration.Configuration rootWebConfig1 = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(null);
if (rootWebConfig1.AppSettings.Settings.Count > 0)
{
System.Configuration.KeyValueConfigurationElement customSetting = rootWebConfig1.AppSettings.Settings["DateX"];
if (customSetting != null)
{
dateX = Datetime.Parse(customSetting.Value);
}
}
您可以查看此MSDN link以获取更多帮助。
答案 3 :(得分:1)
假设您指的是<appSettings>
元素,那么您最初的运气不足:每个键都与字符串值相关联。
因此,您可以看到只需要将DateTime值序列化为字符串,然后在读回时将其解析回来。
如果你不关心你的app.config正在由记事本中的人编辑,那么我将64位刻度值存储为字符串整数:
ConfigurationManager.AppSettings["date"] = myDateTime.Ticks.ToString(CultureInfo.InvariantCulture);
通过这样做阅读:
Int64 ticks = Int64.Parse( ConfigurationManager.AppSettings["date"], NumberStyles.Integer, CultureInfo.InvariantCulture );
DateTime myDateTime = new DateTime( ticks );
但是如果你想让它变得人类可读,那就使用往返选项:
// Serialise
ConfigurationManager.AppSettings["date"] = myDateTime.ToString("o"); // "o" is "roundtrip"
// Deserialise
DateTime myDateTime = DateTime.Parse( ConfigurationManager.AppSettings["date"], NumberStyles.Integer, CultureInfo.InvariantCulture ) );
一些注意事项:
答案 4 :(得分:0)
然而你想要的!我的意思是,一个字符串,但除此之外,你的选择是无限的。如果您愿意,可以将其存储为儿童书中的日期。只需在需要使用它的任何地方解析它。但我建议在某处查看C#代码中的DateTime.ToLongDateString,学习该模式,然后将其存储起来。