这些界面基本上介绍了如何处理混合式开发框架的参数配置内容了,具体的实现操作是如何的呢?下面我们来一步步分析介绍下。
  首先我们定义一个用来保存和加载参数的一个实体类,用来存储对应的参数信息。
/// <summary>
/// 用户登录的连接方式、访问方式
/// </summary>
public class LoginParameter
{
/// <summary>
/// 系统后登录账号
/// </summary>
[DefaultValue("admin")]
public string LoginId { get; set; }
/// <summary>
/// 登陆密码
/// </summary>
[ProtectedString]
public string Password { get; set; }
/// <summary>
/// 记住密码
/// </summary>
[DefaultValue(false)]
public bool RememberPassword { get; set; }
/// <summary>
/// 是否为本地数据库连接方式,否则为使用WCF服务模式(内网,外网)
/// </summary>
[DefaultValue(false)]
public bool IsLocalDatabase { get; set; }
/// <summary>
/// 内网WCF的主机地址
/// </summary>
[DefaultValue("192.168.1.10")]
public string InternalWcfHost { get; set; }
/// <summary>
/// 内网WCF的端口
/// </summary>
[DefaultValue(8000)]
public int InternalWcfPort { get; set; }
/// <summary>
/// 外网WCF的主机地址
/// </summary>
[DefaultValue("183.6.161.193")]
public string ExternalWcfHost { get; set; }
/// <summary>
/// 外网WCF的端口
/// </summary>
[DefaultValue(8000)]
public int ExternalWcfPort { get; set; }
}
  这样我们可以以实体类为载体,对数据进行获取和保存操作了。
  配置信息的加载和保存操作代码如下所示,这些保存操作是基于SettingsProvider.net的。
/// <summary>
/// 从本地XML文件中加载参数信息
/// </summary>
private void LoadParameter()
{
store = new PortableStorage();//保存在本地计算机
settings = new SettingsProvider(store);
parameter = settings.GetSettings<LoginParameter>();
if (parameter != null)
{
this.cmbzhanhao.Text = parameter.LoginId;
this.chkRemember.Checked = parameter.RememberPassword;
if (parameter.RememberPassword)
{
this.tbPass.Text = parameter.Password;
}
else
{
this.tbPass.Text = "";
}
this.chkLocalVersion.Checked = parameter.IsLocalDatabase;
//确保为正确的访问方式,网络版还是单机版
SetAccessType(this.chkLocalVersion.Checked);
}
}
/// <summary>
/// 把用户的信息保存到本地XML文件里面
/// </summary>
private void SaveParameter()
{
store = new PortableStorage();//保存在本地计算机
settings = new SettingsProvider(store);
parameter = settings.GetSettings<LoginParameter>();
if (parameter != null)
{
parameter.LoginId = this.cmbzhanhao.Text;
if (parameter.RememberPassword)
{
parameter.Password = this.tbPass.Text;
}
else
{
parameter.Password = "";
}
parameter.IsLocalDatabase = this.chkLocalVersion.Checked;
settings.SaveSettings<LoginParameter>(parameter);
}
}