Я занят созданием быстрого небольшого приложения WinForms, которое позволяет редактировать предоставленный файл app.config. Я создал обертку вокруг класса System.Configuration.Configuration
, отображая только те свойства, которые я хочу изменить. Я сделал AppSettings
и ConnectionStrings
(используя SqlConnectionStringBuilder
), и теперь я перехожу на system.net/mailSettings
.Добавить конфигурационный файл MailSettings в PropertyGrid
Вот суть моей нынешней структуры:
public class ServerConfigFile : ConfigFile
{
...
[Category("Database Connection Settings")]
[DisplayName("Connection String")]
[RefreshProperties(RefreshProperties.All)]
[Description("The connection string used to connect to the datasource. Default is \"(LocalDB)\\v11.0\"")]
public ConnectionStringBuilderFacade ConnectionString { get; private set; }
...
protected override void ReloadProperties()
{
this.ConnectionString = new ConnectionStringBuilderFacade(this.UnderlyingConfig.ConnectionStrings.ConnectionStrings["EntitiesContainer"]);
...
this.MailSettings = this.UnderlyingConfig.GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup;
}
}
public abstract class ConfigFile
{
protected Configuration UnderlyingConfig { get; private set; }
...
public void RefreshFromFile(string exeFile)
{
this.UnderlyingConfig = ConfigurationManager.OpenExeConfiguration(exeFile);
this.ReloadProperties();
}
protected abstract void ReloadProperties();
}
Я был в состоянии к источнику MailSettings из конфигурационного файла:
this.MailSettings = this.UnderlyingConfig.GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup;
, но так как это должно было быть быстрое приложение , Я не совсем готов инвестировать время, чтобы выписать целый TypeConverter и UITypeEditor только для одного небольшого раздела.
Можно видеть, что то, что нужно есть - настройки SMTP, способы доставки, места съемки (если способ доставки specifiedDirectory), SSL, имя пользователя, пароль ...
Мой вопрос: является есть ли какой-либо существующий редактор PropertyGrid для MailSettings, который я могу подключить и играть, или мне нужно укусить пулю и развернуть мою собственную, или у вас прекрасные люди имеют для меня еще лучшее решение?