C#从外部dll读取web.config中的<system.net> <mailSettings>

DEH*_*DEH 7 c# dll smtp web-config

我的网络应用程序调用外部DLL.在dll中我想访问system.net/mailSettings/smtp部分中的specifiedPickupDirectory pickupDirectoryLocation值.如何从dll代码中获取它?

就像是

System.Configuration.ConfigurationSettings.GetConfig("configuration/system.net/mailSettings/smtp/specifiedPickupDirectory/pickupDirectoryLocation")
Run Code Online (Sandbox Code Playgroud)

但这不起作用

Mat*_*ott 17

您可以使用:

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

    return (config != null) ? config.SpecifiedPickupDirectory : null;
}
Run Code Online (Sandbox Code Playgroud)


Dar*_*rov 6

我想你可以简单地使用PickupDirectoryLocation属性.

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

这样您就不会在代码中使用魔术字符串了,如果在框架的未来版本中此属性更改配置文件中的名称或位置,则可以更少地担心.