我有一个C#类,它提供了一些简单的类和一些基类扩展,如这一个Studio 2010的编译器错误..视觉为基类扩展
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 intellisense识别了基类扩展,并按照预期定义跳转到原始源代码。然而,当我编译Web项目中,我得到了基类扩展每次使用的错误...
Error 28 'string' does not contain a definition for 'ToBooleanOrDefault'
这在我看来就像因此它会忽略我所有的基类扩展引用不使用编译器。想法?该解决方案从VS2008迁移到所有工作正常。