PDA

View Full Version : سوال: ذخیره اطلاعات مربوط به تنظیمات فرمها



مهدی رحیم زاده
پنج شنبه 26 اردیبهشت 1387, 07:11 صبح
سلام
بهترین راه برای ذخیره اطلاعات مربوط به هر فرم چیه ، یعنی بهترش اینه که اونا رو کجا ذخیره کنیم ؟
مثلا توی یک فرم اطلاعات مربوط به منو ها و تنظیمات اونا

علیرضا مداح
پنج شنبه 26 اردیبهشت 1387, 08:06 صبح
سلام دوست عزیز
بهترین راه ذخیره این تنظیمات در Setting پروژه می باشد ،
MSDN - Using Setting in C# (http://msdn.microsoft.com/en-us/library/aa730869(VS.80).aspx)

mohammad272005
پنج شنبه 26 اردیبهشت 1387, 22:54 عصر
شما با كمك كلاس زير ميتونيد تنظيمات برنامه رو در فايل XML ذخيره كنيد.

public static class XmlSerializer<TClass>
{
#region Serialize
/// <summary>
/// Serializes the specified TClass and writes the XML document to a file using the specified xmlFilePath.
/// </summary>
/// <param name="xmlFilePath">The string used to catch to the XML document.</param>
/// <param name="value">The TClass to serialize.</param>
private static void Serialize(string xmlFilePath, TClass value)
{
try
{
XmlSerializer xmlSerializer = new XmlSerializer(value.GetType());
using (Stream stream = new FileStream(xmlFilePath, FileMode.Create))
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter xmlWriter = XmlWriter.Create(stream, settings))
{
xmlSerializer.Serialize(xmlWriter, value);
}
}
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region Deserialize
/// <summary>
/// Deserializes the XML document contained by the specified xmlFilePath.
/// </summary>
/// <returns>The TClass being deserialized.</returns>
/// <param name="xmlReader">The path of XML document to deserialize.</param>
private static TClass Deserialize(string xmlFilePath, Type type)
{
TClass result;
XmlSerializer xmlSerializer = new XmlSerializer(type);
using (XmlReader xmlreader = new XmlTextReader(new FileStream(xmlFilePath, FileMode.Open)))
{
result = (TClass)xmlSerializer.Deserialize(xmlreader);
}
return result;
}
#endregion
#region Load
public static TClass Load(string xmlFilePath, TClass defaultValue)
{
FileInfo xmlFile = new FileInfo(xmlFilePath);
if (!xmlFile.Exists)
{
if (!xmlFile.Directory.Exists)
xmlFile.Directory.Create();
XmlSerializer<TClass>.Save(xmlFilePath, defaultValue);
}
TClass result = XmlSerializer<TClass>.Load(xmlFilePath, defaultValue.GetType());
return ((result == null) ? defaultValue : result);
}
public static TClass Load(string xmlFilePath, Type type)
{
return XmlSerializer<TClass>.Deserialize(xmlFilePath, type);
}
#endregion
#region Save
public static void Save(string xmlFilePath, TClass value)
{
XmlSerializer<TClass>.Serialize(xmlFilePath, value);
}
#endregion
}

linux
پنج شنبه 26 اردیبهشت 1387, 23:46 عصر
سلام
بهترین راه برای ذخیره اطلاعات مربوط به هر فرم چیه ، یعنی بهترش اینه که اونا رو کجا ذخیره کنیم ؟
مثلا توی یک فرم اطلاعات مربوط به منو ها و تنظیمات اونا
اگر از دیتابیس استفاده می کنید و برنامه شما در شبکه اجرا خواهد شد می توانید تنظیمات کاربران در دیتابیس ذخیره کنید با این کار هر کاربر از هر کامپیوتری که استفاده کند تنظیمات یکسان خواهد بود.

hdv212
جمعه 27 اردیبهشت 1387, 00:39 صبح
اگر از دیتابیس استفاده می کنید و برنامه شما در شبکه اجرا خواهد شد می توانید تنظیمات کاربران در دیتابیس ذخیره کنید با این کار هر کاربر از هر کامپیوتری که استفاده کند تنظیمات یکسان خواهد بود.
این خوبه، ولی زمانی که ارتباط با دیتابیس برقرار نشه، اونوقت برنامه در بالا آمدن اولیه دچار مشکل میشه.
همینطور با تشکر از mohammad272005 عزیز، خوب تنظیمات Setting برنامه که در فایل app.config ذخیره میشه، خودش به صورت XML هست.

mohammed
سه شنبه 28 خرداد 1387, 11:40 صبح
سلام دوست عزیز
بهترین راه ذخیره این تنظیمات در Setting پروژه می باشد ،
MSDN - Using Setting in C# (http://msdn.microsoft.com/en-us/library/aa730869(VS.80).aspx)

با نظر آقای مداح موافقم. من خودم تست کردم و باید بگویم عالی کار می کرد. دقت شود که می شود هم AppSettings داشته باشی هم UserSettings که این مزیت مهمی است.