【发布时间】:2011-03-15 18:19:03
【问题描述】:
我有一个 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/get to definition 像预期的那样跳转到原始源代码。但是,当我编译 Web 项目时,每次使用基类扩展都会出错...
Error 28 'string' does not contain a definition for 'ToBooleanOrDefault'
在我看来,编译器没有使用该引用,因此它忽略了我的所有基类扩展。想法?该解决方案是从 VS2008 迁移而来,一切正常。
【问题讨论】:
标签: c# visual-studio-2010 web-applications types