【问题标题】:Mixing C# and VB.Net in ASP.Net App_Code folder在 ASP.Net App_Code 文件夹中混合 C# 和 VB.Net
【发布时间】:2017-07-10 06:31:05
【问题描述】:

当我将 VB 文件放入文件夹并将这行代码写入 web.config 时,我已经成功访问​​了从 VB 到 C# 的类

<compilation>
  <codeSubDirectories>
     <add directoryName="VB" />
     <add directoryName="CSharp" />
  </codeSubDirectories>
</compilation>

现在出于某种原因,我不想将 VB 文件放到子目录中,而是将其放到 App_Code 中,就像这样。

但是,当我尝试从 VB 访问 C# 类时出现错误。在这里。

我的问题是,是否可以在不将 VB 文件放入子目录的情况下访问从 VB 到 C# 的类?我应该在 web.config 中添加什么以使它们连接?谢谢。

【问题讨论】:

  • 尝试使用对App_Code命名空间的引用,例如using Website.App_Code,那么你可以使用App 类。如果还是不行,请将App_Code 目录中的VB 文件的构建操作设置为Compile。
  • @TetsuyaYamamoto 实际上我也已经尝试过了,但仍然不能。只是给出一个错误 namespace could not be found 。通过设置构建操作,您是指这个吗? [stackoverflow.com/questions/6498245/…
  • 你说得对,在尝试使用其命名空间(@ 987654332@)。试一试,看看它是否正常工作。
  • @TetsuyaYamamoto 找不到构建操作
  • 右键单击您的 VB 代码文件,然后选择属性。属性窗口中有一个名为Build Action 的选项,并确保它已设置为“编译”。还要检查 VB 命名空间是否排列正确(如果不是,请将它们设置为 Website.App_Code)。

标签: c# asp.net .net vb.net


【解决方案1】:

首先,右键单击每个 VB 代码文件并导航到“属性”窗口以查看每个文件的属性,然后确保所有文件都已将 Build Action 设置为 Compile 模式,如下所示:

如果您将 VB.NET 代码文件从其他位置复制到 App_Code 目录或使用任何不同的命名空间,请不要忘记正确设置其当前命名空间:

Namespace Website.App_Code
    Module App
       ...
       ' App class contents here

       ...
    End Module
End Namespace

然后,您可以通过引用其命名空间来使用Website.App_Code.App 类:

using Website.App_Code; 

public class Practice
{
    public static string AttachmentDirectory => App.Attachment;
}

请注意,App 类需要设置为 public 范围,以便项目中的所有实例都可以访问它。

注意:AttachmentDirectory 属性似乎分配有expression-bodied member syntax,适用于 6.0 或更高版本。 检查当前使用的编译器版本以使用这种语法。

类似问题:

Classes residing in App_Code is not accessible

How to call a class in the App_Code folder from code behind?

【讨论】:

  • 我不知道问题所在,但是右键单击VB文件时菜单中没有“属性”项。
  • 顺便说一下,我使用的是 ASP.net Web 表单,而不是 ASP.net MVC。我可以知道你的VS的版本吗?
  • 目前我使用的是 VS 2013 和 2015,并且两个版本的属性上下文菜单仍然存在。如果您不能使用上下文菜单中的属性,请使用 View => Properties Window 显示该窗口,然后单击要查看其属性的 VB 文件。
  • 是的,我也试过了。但仍然没有构建操作下拉菜单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-13
  • 2013-05-17
  • 1970-01-01
  • 2011-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多