我有ASP.net网站。在App_Code
文件夹中,我有具有扩展方法的类。从Visual Studio运行此站点时,一切正常。但是,在我的IIS 7服务器上,我收到以下错误:
CS1061:“ System.Data.SqlClient.SqlDataReader”不包含“ SafeGetString”的定义,并且找不到扩展方法“ SafeGetString”接受类型为“ System.Data.SqlClient.SqlDataReader”的第一个参数(您是否缺少使用指令还是程序集引用?)
但是包含此扩展方法的文件位于App_Code文件夹中。我缺少重要的东西吗?
ExtentionMethods类:
public static class ExtentionMethods
{
public static string SafeGetString(this SqlDataReader reader, int colIndex)
{
if (!reader.IsDBNull(colIndex))
return reader.GetString(colIndex);
return "NULL VALUE";
}
public static int SafeGetInt32(this SqlDataReader reader, int colIndex)
{
if (!reader.IsDBNull(colIndex))
return reader.GetInt32(colIndex);
return -1;
}
public static DateTime SafeGetDateTime(this SqlDataReader reader, int colIndex)
{
if (!reader.IsDBNull(colIndex))
{
try
{
}
catch
{
return new DateTime(1800, 1, 1);
}
}
return new DateTime(1800, 1, 1);
}
}
最佳答案
感谢@AnthonyWJones:How come classes in subfolders in my App_Code folder are not being found correctly?
您需要将codeSubDirectories添加到web.config中的编译元素
<configuration>
<system.web>
<compilation>
<codeSubDirectories>
<add directoryName="Extensions"/>
</codeSubDirectories>
</compilation>
</system.web>
</configuration>
关于c# - 找不到扩展方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11550717/