在加载项中更新 CultureInfo 信息
来源:互联网 发布:知柏地黄丸多久一疗程 编辑:程序博客网 时间:2024/05/17 23:07
用 VSTO 开发一个 Outlook 的加载项,在 Outlook (以及这个加载项)运行的过程中,如果用户修改了“控制面板——区域设置”中的 Culture 信息,比如日期的显示格式;怎样在不重新启动 Outlook 或这个加载项的前提下马上反映出用户所做的修改?
我们的第一反应就是“在格式化数据(日期或者数字等等)的时候,用 CurrentCulture 就可以了”。可事实上这还不够。因为 CultureInfo 的相关信息在第一次被调用之后,就缓存起来了,直到它所在的 AppDomain 生命周期结束。如果系统的区域设置发生变化,CultureInfo 是不会自动反映出来的。我们需要用 CultureInfo.ClearCachedData 方法手工更新这些信息。
为了知道系统的区域设置发生了变化,我们可以通过注册 SystemEvents.UserPreferenceChanged 事件来获得通知。
另外值得注意的是,在加载项卸载之前,我们必须要注销事件通知,否则可能会发生内存泄漏。
完整示例代码:
Imports System.Globalization Public Class ThisAddIn Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup Private Sub SystemEvents_UserPreferenceChanged(ByVal sender As Object, ByVal e As UserPreferenceChangedEventArgs) Private Sub ThisAddIn_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shutdown End Class
Imports Microsoft.Win32
AddHandler SystemEvents.UserPreferenceChanged, AddressOf SystemEvents_UserPreferenceChanged
End Sub
If (e.Category = UserPreferenceCategory.Locale) Then ' 发生变化的项目:区域设置
CultureInfo.CurrentCulture.ClearCachedData()
End If
End Sub
RemoveHandler SystemEvents.UserPreferenceChanged, AddressOf SystemEvents_UserPreferenceChanged
End Sub
- 在加载项中更新 CultureInfo 信息
- CultureInfo
- CultureInfo
- CultureInfo
- CultureInfo
- CultureInfo中重要的InvariantCulture
- CultureInfo中重要的InvariantCulture
- 更新数据库中信息
- 在Eclipse中debug时,查看类加载信息
- 在Eclipse中debug时,查看类加载信息
- 在grub 1.97中加载系统中所有硬盘中的所有操作系统–更新grub.cfg
- 在SQL server 2000 中 如何更新表中的text、ntext 或 image 字段信息
- dede5.7联动枚举类型在分类信息中无法更新问题的解决办法
- 如何获取媒体库中所有音频文件信息,并在文件增删后及时更新媒体库
- 如何获取媒体库中所有音频文件信息,并在文件增删后及时更新媒体库
- dede5.7联动枚举类型在分类信息中无法更新问题的解决办法
- dede5.7联动枚举类型在分类信息中无法更新问题的解决办法
- DLINQ(LINQ to SQL)之用户自定义函数、在不同的DataContext之间做更新、缓存、获取信息、数据加载选项和延迟加载
- asp.net列表控件在无法确定列的时候,如何绑定
- 回字型输出
- DIY PC
- apache for win2003 中的目录绑定二级域名配置
- 存储过程--分页
- 在加载项中更新 CultureInfo 信息
- oracle 启动和停止命令
- 经验分享交流:常用SQL语句技法
- C#中out 及 ref 区别
- SQLServer中使用javascript脚本验证数据收藏
- 庆生
- 折腾是一个人职业生涯中最为珍贵的财富
- bat批处理文件字符替换一例
- 舞蝶飞照片创意软件功能简介