using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows; using ESRI.ArcGIS.esriSystem;
using System.Xml.Serialization;
using System.IO;
using SWGW.Properties;
using System.Diagnostics;
namespace SWGW
{
/// <summary>
/// App.xaml 的交互逻辑
/// </summary>
public partial class App : Application
{ #region License
protected override void OnStartup(StartupEventArgs e)
{
SettingsManager.OnStartup();
base.OnStartup(e); if (!LicenseManager.InitializeLicense.InitializeEngineLicense())
{
MessageBox.Show("无法初始化ArcGIS Engine的授权或地球扩展。截止...");
} }
#endregion #region 私有类
static class SettingsManager
{
#region Class Members
static Settings settings = new Settings();
const string applicationDirectory = "SWGW";
//配置文件名称
const string settingsFileName = "XXXX.xml";
#endregion Class Members #region Constructor static SettingsManager()
{
EnsureDirectoryExists();
} #endregion Constructor #region Properties public static Settings ApplicationSettings
{
get { return settings; }
} #endregion Properties #region Startup, Exit public static void OnStartup()
{
LoadSettings();
} public static void OnExit()
{
SaveSettings();
} #endregion Overrides #region Other Functions static string SettingsFileName
{
get
{
return Path.Combine(
Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
applicationDirectory),
settingsFileName);
}
} static void LoadSettings()
{
Settings tmp; try
{
XmlSerializer xml = new XmlSerializer(typeof(Settings)); using (Stream stream = new System.IO.FileStream(SettingsFileName,
FileMode.Open, FileAccess.Read, FileShare.Read))
{
tmp = (Settings)xml.Deserialize(stream);
}
}
catch (Exception e)
{
Trace.WriteLine(e.Message);
return;
} settings = tmp;
} static void SaveSettings()
{
try
{
XmlSerializer xml = new XmlSerializer(typeof(Settings)); using (Stream stream = new System.IO.FileStream(SettingsFileName,
FileMode.Create, FileAccess.Write, FileShare.None))
{
xml.Serialize(stream, settings);
}
}
catch (Exception e)
{
Trace.WriteLine(e.Message);
}
} [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
static void EnsureDirectoryExists()
{
try
{
DirectoryInfo info = new DirectoryInfo(
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
applicationDirectory)); if (!info.Exists)
{
info.Create();
}
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
} #endregion Other Functions
} #endregion
}
}

最新文章

  1. Java创建树形结构算法实例
  2. 使用微软CORS包不能跨域访问的问题
  3. Effective Java 读书笔记之六 方法
  4. &lt;&lt;有效软件测试&gt;&gt; 读书笔记和自己的一些思考
  5. 百度Paddle会和Python一样,成为最流行的深度学习引擎吗?
  6. http 302
  7. 如何安装altium designer 10
  8. 7 天玩转 ASP.NET MVC — 第 5 天
  9. 集群重启后启动ambari-server访问Web页面无法启动集群解决
  10. 压力测试工具siege的用法
  11. JavaScript下拉框去除重复内容
  12. CI 中css样式或者js样式加载不进来的情况
  13. JAVA首选五款开源Web开发框架
  14. 【转】VS2013中如何解决error C4996: &#39;fopen&#39;问题
  15. mysql学习(五)-字段属性
  16. JAVA课设--五子棋--团队博客
  17. Opencv如何捕获摄像头视频-OpenCV步步精深
  18. nginx笔记6-总结
  19. 解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的问题
  20. ionic 热更新 cordova-hot-code-push

热门文章

  1. hdu 5117 数学公式展开 + dp
  2. 【笔试题】Spring笔试题
  3. windows 10 的开始菜单里面图标右击弹不出选项菜单了
  4. [THINKPHP] 模板可用三元操作符
  5. [putty] ubuntu 通过配置文件设置字体
  6. mysql source 乱码
  7. python spyder 今天突然打不开了【已解决】
  8. Bzoj 3498 Cakes(三元环)
  9. 10 个常用的 es6 特性
  10. Xamarin.Forms获取设备屏幕大小