Как получить доступ к разделу 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). Вы можете сделать то же самое, присвоив значение одноэлементному классу.

Другие вопросы по тегам