Как получить доступ к разделу ApplicationSettings из другой сборки?
У меня есть DLL, на которую ссылается родительская (исполняющая) сборка. В разделе ApplicationSettings app.config для родительской сборки у меня есть некоторые настройки, к которым можно получить доступ обычным способом intellisense (например, Properties.Settings.Default.SMTPServer).
Как я могу получить доступ к этим настройкам из упомянутой DLL? Я, очевидно, не могу использовать intellisense, поскольку они не в одной сборке!
2 ответа
Вы пытались сохранить файл.settings в своем проекте DLL и затем использовать его оператор [] для доступа к свойству по имени?
Например, предположим, что у вашей DLL есть файл MySettings.settings, в котором нет ничего конкретного:
MySettings.Default [ "SomeSetting"];
(Обратите внимание, я на самом деле не пробовал это, но после небольшого размышления кажется, что это должно сработать)
Я думаю, что лучшим решением было бы принять совет Криса и использовать механизм синглтона или МОК, чтобы вам не пришлось жертвовать безопасностью типов.
Получаете ли вы доступ к этому значению из обеих сборок?
DLL может иметь свой собственный конфигурационный файл и настройки приложения. Это начинается как DLL с именем файла конфигурации, но настройки также могут быть перенесены в основное приложение.
Другой подход, который я использовал, - это присвоить значение IoC, а затем прочитать значение из Ioc (Ioc == Inversion of Control library). Вы можете сделать то же самое, присвоив значение одноэлементному классу.