我有以下代码来获取自定义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;
}
}
答案 0 :(得分:2)
试试这个:
public T GetSection<T>(string sectionName) where T : class
{
Configuration config = WebConfigurationManager.OpenWebConfiguration(HostingEnvironment.ApplicationVirtualPath + "/ExternalConfig");
return config.GetSection(sectionName) as T;
}
关于您的更新,如果您的类是静态的,则所有成员也必须是静态的(将方法标记为静态)。