Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Settings для Dll


Автор: Genrih 22.8.2007, 12:27
Есть файл xml. Есть dll. Как сказать dll, чтобы она брала settings с етого файла? Спасибо.

Автор: archeg 22.8.2007, 15:24
Можно открыть файл settings просто как xml и прочитать (может быть даже с помощью System.Configuration.ConfigXmlDocument, хотя он особо не поможет  smile )

Можно компилировать вместо dll - exe. В C# екзешники можно использовать так же как дллки, а в точке входа можно просто ничего не делать.

Автор: Genrih 22.8.2007, 17:06
Мне надо именно проапдейтить класс Settings.
Но когда я вручную парсаю *.config, там инты-то сохраняются как стринги, и соответственно возникает ошибка, когда я интовой проперте пробую присвоить вытянутый стринг.
Код

public void UpdateSettings()
    {
      List<SettingsProperty> list = LoadFromFile();
      foreach (SettingsProperty sp in list)
      {
        //Settings1 - это именно тот класс, который мне надо поменять
        Settings1.Default[sp.Name] = sp.DefaultValue;//и здесь возникает ошибка
      }
    }

    private List<SettingsProperty> LoadFromFile()
    {
      Assembly asm = Assembly.GetCallingAssembly();
      string cfgFile = asm.CodeBase + ".config";
      const string nodeName = "setting";

      XmlDocument doc = new XmlDocument();
      doc.Load(new XmlTextReader(cfgFile));

      XmlNodeList nodes = doc.GetElementsByTagName(nodeName);
      List<SettingsProperty> result = new List<SettingsProperty>();
      foreach (XmlNode node in nodes)
      {
        SettingsProperty sp = new SettingsProperty(node.Attributes[0].Value);
        sp.DefaultValue = node.InnerText;
        sp.SerializeAs = (SettingsSerializeAs)Enum.Parse(typeof(SettingsSerializeAs), node.Attributes[1].Value);
        result.Add(sp);
      }
      return result;
    }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)