c# - 在智能感知中找到但在编译时找不到的扩展

标签 c# asp.net .net

这真是令人沮丧!我有一个跨项目使用的通用代码库。但是由于某种原因,我的扩展已停止在此项目中工作。我已经在很多其他项目中使用过它们,但我不知道是什么阻止了它们现在的工作!哎呀!

这是一个示例扩展,您可以了解它们是如何设置的。

 public static string ToAlphaNumeric(this string InputString)
 {
        string OutputString = string.Empty;
        OutputString = Regex.Replace(InputString, @"[^a-zA-Z_0-9]+", "-");
        OutputString = Regex.Replace(OutputString, "[_]+", "-");
        OutputString = OutputString.Trim(new char[] { '-' });
        return OutputString;
 }

我当前的项目是 v4.0,我的代码库是 3.5,虽然我已经尝试将它升级到 4.0,但并没有解决它。我在每个页面的顶部添加了一个引用,因为我无法在 web.config 中定义它来工作。

它肯定在我的页面上引用并在智能感知中找到。但是,当我构建项目时出现错误,提示“string”不包含“ToAlphaNumeric”的定义。但确实如此!为什么会出现此错误?

如果我遗漏了任何需要的信息,我深表歉意,我已尝试包括所有我能想到的信息。

谢谢!

最佳答案

导致此错误的两个最可能的原因是

  • 您忘记添加对定义扩展的项目的引用
  • 您忘记为定义扩展名的命名空间添加 using

追踪错误的最简单方法是删除扩展语法并直接进行静态调用。

TheNamespace.TheExtensionType.ToAlphaNumeric(myString)

现在编译要么工作要么提示 TheExtensionType 不可用。如果有效,则您的 using 不正确,如果失败,则您缺少对程序集的引用。

关于c# - 在智能感知中找到但在编译时找不到的扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8770670/

相关文章:

HTML 布局、ASP.Net、浏览器差异......必须有更好的方法

c# - 如何将我的组件放入 Visual Studio 工具箱中的新组中?

c# - 在 View 中找不到 ASP.Net 核心模型

c# - 在 data-originalvalue 属性中使用时,MVC 4 View Page 中的 Null Reference Exception?

c# - 嵌套页面中的异常查找控件(asp.net)

asp.net - web.config asp.net mvc 5 中的 serilog AppSetting

c# - 通过 LINQ 映射进行调用时增加 SQL 命令超时

c# - 最有用的属性

c# - 如何使用 Linq-To-SQL 进行更新?

c# - MVC 核心、Web 套接字和线程