程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> WPF使用ARCGIS App文件配置Cs後台文件,wpfarcgis

WPF使用ARCGIS App文件配置Cs後台文件,wpfarcgis

編輯:C#入門知識

WPF使用ARCGIS App文件配置Cs後台文件,wpfarcgis


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. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved