2010-07-16 12 views
7

Web uygulağım harici bir dll çağırır. Dll içinde system.net/mailSettings/smtp bölümündeki belirlenenPickupDirectory pickupDirectoryLocation değerine erişmek istiyorum. Bunu dll kodundan nasıl alabilirim?C# Okuma <system.net><mailSettings> in web.config dosyasından harici dll den itibaren

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

gibi

şey ama bu

cevap

16

kullanabilirsiniz çalışmaz:

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

    return (config != null) ? config.SpecifiedPickupDirectory : null; 
} 
+0

Harika - çok teşekkürler. PickupDirectoryLocation'ı göndermek için ayar yaptım. Genel dize GetPickupDir() { var config = System.Configuration.ConfigurationManager.GetSection ("system.net/mailSettings/smtp") olarak System.Net.Configuration.SmtpSection; return (config! = Null)? config.SpecifiedPickupDirectory.PickupDirectoryLocation: null; } – DEH

6

Ben sadece PickupDirectoryLocation özelliğini kullanın sanırım.

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

Bu şekilde

kodunuzda sihirli dizeleri kullanmıyorsanız ve çerçevenin gelecekteki sürümlerinde bu özellik yapılandırma dosyasında ad veya konum değiştirmesi durumunda endişelenecek bir daha az şey yapar.

+1

İyi nokta, SmtpClient otomatik olarak yapılandırma ayarlarını kullanır. –

0

kullanımı bu: o

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"); 

o zaman tabii bu Of

//settings.Smtp.SpecifiedPickupDirectory; 

erişebileceksiniz da System.Net'teki bulunmalıdır. Mail.SmtpClient.PickupDirectoryLocation özelliği