首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#从外部dll读取web.config中的<system.net><mailSettings>

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

Stack Overflow用户
提问于 2010-07-16 22:29:43
回答 3查看 7.5K关注 0票数 7

我的web应用程序调用外部dll。在dll中,我想访问system.net/ pickupDirectoryLocation /smtp部分中的邮件设置值。如何从dll代码中获取它?

就像这样

代码语言:javascript
复制
System.Configuration.ConfigurationSettings.GetConfig("configuration/system.net/mailSettings/smtp/specifiedPickupDirectory/pickupDirectoryLocation")

但这并不管用

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-16 22:36:12

您可以使用:

代码语言:javascript
复制
public string GetPickupDirectory()
{
    var config = ConfigurationManager.GetSection("system.net/mailSettings/smtp") as SmtpSection;

    return (config != null) ? config.SpecifiedPickupDirectory : null;
}
票数 17
EN

Stack Overflow用户

发布于 2010-07-16 22:40:45

我想您可以简单地使用PickupDirectoryLocation属性。

代码语言:javascript
复制
// if .NET 4.0 don't forget that SmtpClient is IDisposable
SmtpClient client = new SmtpClient();
string pickupLocation = client.PickupDirectoryLocation;

这样,您就不需要在代码中使用魔术字符串,而且在框架的未来版本中,如果该属性更改了配置文件中的名称或位置,则无需担心这些问题。

票数 6
EN

Stack Overflow用户

发布于 2010-07-16 22:41:24

使用以下命令:

代码语言:javascript
复制
using System.Configuration;
using System.Web.Configuration;
using System.Net.Configuration;

然后:

代码语言:javascript
复制
Configuration config = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
MailSettingsSectionGroup settings = (MailSettingsSectionGroup)config.GetSectionGroup("system.net/mailSettings");

然后你就可以访问

代码语言:javascript
复制
//settings.Smtp.SpecifiedPickupDirectory;

当然,这也应该在System.Net.Mail.SmtpClient.PickupDirectoryLocation属性中找到

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3265888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档