Как создать общий метод Get Custom WebConfig для расширения раздела - PullRequest
2 голосов
/ 27 апреля 2011

У меня есть следующий код для получения пользовательского раздела Webconfig

Configuration config = WebConfigurationManager.OpenWebConfiguration
(System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath + "/ExternalConfig");
        Sample1Section myHandler =
            (Sample1Section)config.GetSection("settings");

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

Обновление 1 : я получаю ошибку времени компиляции "Статический класс не может иметь нестатический метод"

public static class MyExtensions
{
    public T GetSection<T>(this string sectionName) where T : class
    {
        Configuration config = WebConfigurationManager.OpenWebConfiguration(HostingEnvironment.ApplicationVirtualPath + "/ExternalConfig");
        return config.GetSection(sectionName) as T;
    }
}

Обновление 2 : Исправлено благодаря BrandonZeider:)

   public static class MyExtensions
{
    public static T GetSection<T>(this string sectionName) where T : class
    {
        Configuration config = WebConfigurationManager.OpenWebConfiguration(HostingEnvironment.ApplicationVirtualPath + "/ExternalConfig");
        return config.GetSection(sectionName) as T;
    }
}

1 Ответ

2 голосов
/ 27 апреля 2011

Попробуйте это:

public T GetSection<T>(string sectionName) where T : class
{
    Configuration config = WebConfigurationManager.OpenWebConfiguration(HostingEnvironment.ApplicationVirtualPath + "/ExternalConfig");
    return config.GetSection(sectionName) as T;
}

Что касается вашего обновления, если ваш класс статический, все члены также должны быть статическими (пометьте метод как статический).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...