<System.net> <mailSettings> Чтения C# в web.config от внешнего dll

Мое веб-приложение называет внешний dll. В dll я хочу получить доступ к значению specifiedPickupDirectory pickupDirectoryLocation в разделе system.net/mailSettings/smtp. Как я могу захватить его из кода dll?

Что-то как

System.Configuration.ConfigurationSettings.GetConfig("configuration/system.net/mailSettings/smtp/specifiedPickupDirectory/pickupDirectoryLocation")

но это не работает

7
задан DEH 16 July 2010 в 14:29
поделиться

3 ответа

Вы можете использовать :

public string GetPickupDirectory()
{
    var config = ConfigurationManager.GetSection("system.net/mailSettings/smtp") as SmtpSection;

    return (config != null) ? config.SpecifiedPickupDirectory : null;
}
17
ответ дан 6 December 2019 в 07:49
поделиться

используйте это:

using System.Configuration;
using System.Web.Configuration;
using System.Net.Configuration;

затем:

Configuration config = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
MailSettingsSectionGroup settings = (MailSettingsSectionGroup)config.GetSectionGroup("system.net/mailSettings");

тогда у вас будет доступ к

//settings.Smtp.SpecifiedPickupDirectory;

Конечно, это также должно быть найдено в свойстве System.Net.Mail.SmtpClient.PickupDirectoryLocation

0
ответ дан 6 December 2019 в 07:49
поделиться

Думаю, вы могли бы просто использовать свойство PickupDirectoryLocation .

// if .NET 4.0 don't forget that SmtpClient is IDisposable
SmtpClient client = new SmtpClient();
string pickupLocation = client.PickupDirectoryLocation;

Таким образом, вы не используете магические строки в своем коде, и это избавляет вас от беспокойства, если в будущих версиях фреймворка этот атрибут изменит имя или расположение в файле конфигурации.

6
ответ дан 6 December 2019 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: