应用程序数据实用程序类





5.00/5 (1投票)
2002年4月28日
1分钟阅读

72872

207
ApplicationData是一个用于管理应用程序数据的通用实用程序库类。
引言
本文介绍了一个名为 ApplicationData
的类,它简化了应用程序的数据管理。
根据“为 Windows XP 设计规范 v2.3”,您应该将应用程序数据分类为以下几类:
- 每个用户,漫游
- 每个用户,非漫游
- 每个计算机(非用户特定且非漫游)
了解为每个类别存储文件和注册表设置的位置可能很复杂,并且需要重复代码。这个实用类试图简化这个过程。此外,规范要求应用程序数据应存储在
[company name]\[product name]\[version]
所需的信息是从程序集属性中提取的(例如 AssemblyCompanyAttribute
),因此强烈建议在使用此实用程序时填写适当的属性(通常在 AssemblyInfo.cs
中)。
示例位置
- C:\Documents and Settings\All Users\Application Data\My Company\My Product\1.0.840.34747\Sub1\Sub2\My File.txt
- "HKEY_CURRENT_USER\Software\My Company\My Product\1.0.840.34747\Local\Sub1\Sub1"
使用示例
// Working with files:
FileInfo file = ApplicationData.LocalUser["Sub1"]["Sub2"].GetFile("file.txt");
StreamWriter writer = file.CreateText();
writer.WriteLine("This is a test of ApplicationData!");
writer.Close();
// Working with the registry:
RegistryKey key = ApplicationData.LocalUser["Sub1"]["Sub2"].GetRegistryKey();
key.SetValue("Test", "This is a test!");
此实用程序库中使用的类包括
System.Windows.Forms.Application
,它具有非常有用的属性,例如:Application.LocalUserAppDataPath
、Application.CommonAppDataRegistry
等...
System.WeakReference
,它用于存储三个静态根实例(Common、LocalUser 和 User)的引用。通过使用弱引用,我不需要每次需要时都重新创建实例,并且如果未使用它们,它们可以被垃圾回收。(有关实现,请参见 ApplicationData.GetAppDataByType()
)
我希望这个实用程序对您有所帮助!如果您有任何意见或建议,我将不胜感激!