无法从Controller访问App_Code逻辑

时间:2014-08-01 14:26:57

标签: vb.net asp.net-web-api asp.net-web-api2

我刚开始使用我的第一个ASP.Net WebApi 2项目。我有这样一个文件:

/AppCode/Remits.vb

Public Class Remits
    Public Shared Function GetBoolean(id As Integer, id2 As Integer) As Boolean
        Return True
    End Function
End Class

需要从我的所有控制器调用此函数。该函数检查两个ID参数是否有效(使用一些广泛的数据库逻辑完成,为简洁起见,将其删除)。

/Controllers/TestController.vb

Namespace Controllers

    Public Class TestController
        Inherits ApiController

        <Route("Test/{id}")>
        Public Function [Get](id As Int32) As IHttpActionResult
            Dim b As Boolean = myNs.Remits.GetBoolean(123, 456) ' <-- error (see below)
            Return Ok(b)
        End Function

    End Class

End Namespace

这甚至无法编译,错误

  

&#39; myns名字&#39;没有宣布。由于其保护,它可能无法访问   水平

为什么命名空间和/或类不能在控制器中访问?或者,我做错了什么?

更新

以前目录中的文件无法识别 App_Code 中的任何内容。我已更新问题以反映这一点。这是一个突出问题的(微小)示例项目。 http://1drv.ms/1kqjwTX

1 个答案:

答案 0 :(得分:2)

当您向App_Code添加类时,它被设置为构建操作“内容”。您需要将其更改为“编译”。

所以:

  1. 请勿使用App_Code,重命名该文件夹
  2. 将任何类文件更改为“编译”构建操作。
  3. #2。在解决方案资源管理器和属性窗口中选择文件(如果默认情况下没有打开,请右键单击该文件并选择属性),有一个名为Build Action的选项。将其更改为编译。