基类扩展的 Visual Studio 2010 编译器错误

Fla*_*per 5 c# types web-applications visual-studio-2010

我有 ac# 类,提供一些简单的类和一些基类扩展,比如这个..

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;
}
Run Code Online (Sandbox Code Playgroud)

该类编译良好,似乎没有问题。然后我在一个 web 项目中引用了该项目,VS2010 智能感知识别基类扩展,并且 F12/got to definition 按预期跳转到原始源代码。但是,当我编译 Web 项目时,每次使用基类扩展都会出现错误...

Error   28  'string' does not contain a definition for 'ToBooleanOrDefault'
Run Code Online (Sandbox Code Playgroud)

在我看来,编译器没有使用该引用,因此它忽略了我所有的基类扩展。想法?该解决方案是从 VS2008 迁移而来的,那里一切正常。

Pan*_*vos 1

除了常见错误(忘记包含扩展类的命名空间)之外,您应该确保两个项目使用相同的 .NET 版本。有时,v4 项目不会正确引用为框架的早期版本构建的程序集

时时刻刻都让我着迷