Как использовать файлы веб-конфигурации в Silverlight - PullRequest
9 голосов
/ 20 мая 2011

Я пытаюсь использовать файлы веб-конфигурации в Silverlight.

Я поместил в 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");

Однако это не работает, оно выдает ошибку «Только утверждение, вызовы, приращение, уменьшение ... может использоваться как утверждение»

Ответы [ 3 ]

19 голосов
/ 20 мая 2011

Невозможно прочитать web.config из приложения Silverlight, поскольку приложение 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 на клиенте.

8 голосов
/ 20 мая 2011

Вы не можете прочитать web.config из приложения Silverlight, потому что пространство имен конфигурации не существует в 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;
        }
1 голос
/ 16 августа 2012

Настройка приложений Silverlight 3 с использованием файла Web.config из ASP.NET
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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...