如何在Silverlight中使用Web配置文件
本文关键字:Web 配置文件 Silverlight | 更新日期: 2023-09-27 17:57:28
我正在尝试在Silverlight中使用我的web配置文件。
我在web.config中放入了以下内容:
<configuration>
<appSettings>
<add key="FileHeader" value="file://***.com/Builds/"/>
<add key="WebHeader" value="http://***.com/dev/builds"/>
</appSettings>
我试着像一样使用它们
string temp= System.Configuration!System.Configuration.ConfigurationManager.AppSettings.Get("FileHeader");
然而,它不起作用,它给出了一个错误"只有赋值、调用、增量、减量…才能用作语句"
您无法从Silverlight应用程序读取web.config,因为Silverlight应用程序运行在客户端(浏览器中),而不是服务器上。
从您的服务器代码,您可以使用访问应用程序设置
string temp = Configuration.ConfigurationManager.AppSettings["FileHeader"];
但你必须把它们发给客户。你可以使用InitParams
<param name="initParams" value="param1=value1,param2=value2" />
在服务器代码(Page_Load of Default.aspx)中,您可以循环浏览所有AppSettings并动态创建initParams的值。
在Silverlight应用程序中,您可以访问Application_Startup事件中的参数:
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new Page();
if (e.InitParams.ContainsKey("param1"))
var p1 = e.InitParams["param1"];
}
或者循环遍历所有参数并将它们存储在配置字典中。像这样,您可以在客户端的Silverlight应用程序中设置应用程序。
您无法从Silverlight应用程序中读取web.config,因为SL.NET Framework中不存在配置命名空间,但您可以执行以下操作:
public static string GetSomeSetting(string settingName)
{
var valueToGet = string.Empty;
var reader = XmlReader.Create("XMLFileInYourRoot.Config");
reader.MoveToContent();
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "add")
{
if (reader.HasAttributes)
{
valueToGet = reader.GetAttribute("key");
if (!string.IsNullOrEmpty(valueToGet) && valueToGet == setting)
{
valueToGet = reader.GetAttribute("value");
return valueToGet;
}
}
}
}
return valueToGet;
}
使用ASP.NET中的Web.config文件配置Silverlight 3应用程序
http://www.codeproject.com/Articles/49490/Configure-Silverlight-3-Applications-using-the-Web
已发布上述文章的编辑版本或下一版本,web.config配置需要遵循此版本-http://www.codeproject.com/Articles/56097/A-More-Flexible-and-Secure-Method-to-Configure-Sil