【发布时间】:2014-02-19 03:14:50
【问题描述】:
我在一个项目中使用 asp.net [C#]。这是一个包括类的大项目。我需要添加一些 VB 类来实现一些计算。是否可以从 C# 代码调用 VB 类?
【问题讨论】:
-
我所知道的唯一一次可以在同一个项目中混合 VB 和 C# 代码是“WEB Site”项目。在网站的情况下,它是 asp_net 编译你的类和
*.*proj文件不涉及,这就是为什么它是可能的
我在一个项目中使用 asp.net [C#]。这是一个包括类的大项目。我需要添加一些 VB 类来实现一些计算。是否可以从 C# 代码调用 VB 类?
【问题讨论】:
*.*proj 文件不涉及,这就是为什么它是可能的
我并不否认所有其他答案中提到的事实,即我们不能在同一个项目中混合使用语言。 最好的方法是创建一个单独的库并将其用作项目中的参考。这将更容易实现并且在可维护性方面更好。
但是对于 ASP.NET 网站,我们绝对可以使用来自不同语言的多个类。为了实现这一点,我们可以配置我们的 webapplciation 以创建 App_Code 文件夹的子文件夹作为单独的兼容单元,然后每个文件夹可以包含不同编程语言的源代码。
您可以按以下方式更改配置文件。
完成后,为文件夹中定义的语言添加相应的类。 CSCode文件夹中的C#和VBCode文件夹中的VB如下。
最后,您可以在您网站的其他区域使用它,如下所示。
【讨论】:
只需在您的 C# 项目中添加您的 VB 项目的引用并使用该类。
因为VB.NET 和C# 都编译为IL(中间语言),您可以简单地在VB.NET 中创建一个库(一个DLL 文件),然后在C# 中使用该库。
【讨论】:
将 VB.net 类库项目添加到您的 C# 解决方案中。
将所有 VB.net 类添加到该类库中
从 C# 项目添加对 VB.Net 类库项目的引用
【讨论】:
不 - 您不能在 SAME 项目中混合使用语言 - 回答标题中的问题。
您可以做的是引用包含该类的 VB 程序集。
【讨论】: