silveright使用配置文件-转

  首先,在工程中创建一个XML文件,可以取名为app.config。
 
  记得放在工程的根目录,方便后面设置路径。把Build Action设成Resource,关于Build Action的说明可以在这里找到。
 
  随便在app.config中写点东西
 
<?xml version="1.0" encoding="utf-8" ?>
 
<configuration>
 
  <appSettings>
 
    <add key="name" value="srzhz"/>
 
    <add key="university" value="Tsinghua University"/>
 
  </appSettings>
 
</configuration>
 
  然后要开始创建这个ConfigurationManager类了。
 
  首先在工程上按右键点击Add Reference,之后选择System.Xml.Linq。(如果没加的话无法引入命名空间System.Xml.Linq)
 
  然后在ConfigurationManager类中写入如下代码
 
using System;
 using System.Windows;
 using System.Collections.Generic;
 using System.Windows.Resources;
 using System.IO;
 using System.Xml.Linq;
 using System.Reflection;
 
namespace Model
 {
     /// <summary>
 
    /// Access appSettings from a configuration file
 
    /// </summary>
 
    /// <remarks>Your appConfig file must be in the root of your applcation</remarks>
 
    public static class ConfigurationManager
     {
         static ConfigurationManager()
         {
             AppSettings = new Dictionary<string, string>();
             ReadSettings();
         }
 
        public static Dictionary<string, string> AppSettings { get; set; }
         private static void ReadSettings()
         {
             // Get the name of the executing assemby - we are going to be looking in the root folder for
             // a file called app.config
             string assemblyName = Assembly.GetExecutingAssembly().FullName;
             assemblyName = assemblyName.Substring(0, assemblyName.IndexOf(','));
             string url = String.Format("{0};component/app.config", assemblyName);
             StreamResourceInfo configFile = Application.GetResourceStream(new Uri(url, UriKind.Relative));
             if (configFile != null && configFile.Stream != null)
             {
                 Stream stream = configFile.Stream;
                 XDocument document = XDocument.Load(stream);
                 foreach (XElement element in document.Descendants("appSettings").DescendantNodes())
                 {
                     AppSettings.Add(element.Attribute("key").Value, element.Attribute("value").Value);
                 }
             }
         }
     }
 }
 
  之后你就可以通过调用这个类来获得配置信息了。例如:
 
String name = ConfigurationManager.AppSettings["name"];

  

Build Action为Content的文件读取方式为:

        //Uri uri = new Uri("/SilverlightApplication7;component/remark.txt", UriKind.Relative);
Uri uri = new Uri("app.config", UriKind.Relative); StreamResourceInfo sri = Application.GetResourceStream(uri); System.IO.StreamReader reader = new System.IO.StreamReader(sri.Stream); MessageBox.Show(reader.ReadToEnd());

  

posted on 2011-12-02 14:23  chuncn  阅读(424)  评论(0编辑  收藏  举报

导航