我需要在我的应用程序中保存少量的GUI属性。 属性很简单(窗口大小,窗口颜色,ext ...),它们需要存储在文件中(可以是XML或二进制)。
我不确定我知道编写代码的最佳方式是什么? 它是简单的XML还是序列化?
有一些例子吗?
感谢。
答案 0 :(得分:2)
我建议使用IsolatedStorage来存储应用程序运行时设置:
IsolatedStorageSettings appSettings= IsolatedStorageSettings.ApplicationSettings;
appSettings.Add(<Control.PropertyName>, <Value>);
答案 1 :(得分:2)
将值存储在web.config文件中。这是一个例子:
<appSettings>
<add key="size" value="100" />
编辑:由于它看起来像是一个Windows应用程序,因此可以使用App.config文件。
答案 2 :(得分:2)
这是我存储应用程序设置的首选方式,希望有所帮助
public class Settings
{
public int WindowWidth { get; set; }
public int WindowHeight { get; set; }
public int FullscreenAsDefault { get; set; }
}
然后在任何适用于应用类型的主类中:
public Settings Settings { get; set; }
public void OnOpen()
{
if ( !File.Exists( "Settings.xml" ) )
{
// init settings
this.Settings = new Settings()
{
FullscreenAsDefault = false,
WindowHeight = 500,
WindowWidth = 700
};
}
else
{
// load settings
XmlSerializer xmlSerializer = new XmlSerializer( typeof( Settings ) );
Settings = xmlSerializer.Deserialize( new FileStream( "Settings.xml", FileMode.Open ) ) as Settings;
}
}
public void OnClose()
{
// save settings
XmlSerializer xmlSerializer = new XmlSerializer( typeof( Settings ) );
xmlSerializer.Serialize( new FileStream( "Settings.xml", FileMode.Create ), this.Settings );
}
答案 3 :(得分:1)
如果它们作为属性存储在类中,例如Settings
,您可以将其序列化为磁盘(您选择的二进制或xml)。
反序列化此文件以在应用程序启动时返回Settings
对象。如果该文件不存在,请创建一个新的Settings
对象并序列化默认值。
答案 4 :(得分:1)
我建议使用XML,因为它是“人类可读的”,可以使用普通工具进行操作/查看。
真正简单的方法是使用DataContractSerializer。该链接显示了如何定义要序列化的实体以及如何轻松序列化。还有ISerialiazable和XmlSerializer等,但为什么DCS如此简单呢? : - )
答案 5 :(得分:0)
您可以使用普通的旧INI文件来存储非敏感值。您可以使用Nini(http://nini.sourceforge.net/)来读取和写入INI文件。 .NET框架不提供任何内置库来处理INI文件。