我有一个 C# 类,提供一些简单的类和一些基类扩展,例如这个。
public static Boolean ToBooleanOrDefault(this String s, Boolean Default)
{
return ToBooleanOrDefault((Object)s, Default);
}
public static Boolean ToBooleanOrDefault(this Object o, Boolean Default)
{
Boolean ReturnVal = Default;
try
{
if (o != null)
{
switch (o.ToString().ToLower())
{
case "yes":
case "true":
case "ok":
case "y":
ReturnVal = true;
break;
case "no":
case "false":
case "n":
ReturnVal = false;
break;
default:
ReturnVal = Boolean.Parse(o.ToString());
break;
}
}
}
catch
{
}
return ReturnVal;
}
该类编译良好并且似乎没有问题。然后,我在一个 Web 项目中引用了该项目,VS2010 智能感知可以识别基类扩展,并且 F12/got 到定义会按预期跳转到原始源代码。但是,当我编译 Web 项目时,每次使用基类扩展时都会出现错误...
Error 28 'string' does not contain a definition for 'ToBooleanOrDefault'
在我看来,编译器没有使用该引用,因此它忽略了我所有的基类扩展。有想法吗?该解决方案是从 VS2008 迁移而来,一切正常。
除了常见错误(忘记包含扩展类的命名空间)之外,您应该确保两个项目使用相同的 .NET 版本。有时,v4 项目不会正确引用为框架的早期版本构建的程序集
时时刻刻都让我着迷
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)