代码之家  ›  专栏  ›  技术社区  ›  Steve Johnson

在ASP.NET网站项目中混合使用VB.NET和C代码?

  •  23
  • Steve Johnson  · 技术社区  · 16 年前

    这个问题比较老,经常被问到,我这里也有类似的问题,但我的问题更具体一些。

    Q1。在ASP.NET网站中混合C和VB.NET代码是否合法?它是否有效?如果有效,怎么做?任何样品都是好的。

    Q2。如果混合C和VB.NET代码会产生任何影响,那么也请共享这些代码。

    我有一个用vb.net编码的Web项目。我正在研究这个项目的一个模块。我想用C编码。我无法将整个项目转换为C,因为我不是唯一一个在项目上工作的人。然而,我打算构建的模块,我希望它内置于C。

    我听说,对于Web项目,如果我们在C中编写部分代码,在VB.NET中编写部分代码,那么在将项目编译为DLL时会出现问题。是真的吗?如果是,那么解决方案是什么。

    另外,如果我正在.NET中构建动态链接库,那么我可以混合C和VB.NET代码吗?

    3 回复  |  直到 13 年前
        1
  •  50
  •   Gabe Timothy Khouri    16 年前

    从 http://msdn.microsoft.com/en-us/library/t990ks23.aspx :

    app_code文件夹中有多种编程语言

    因为app_code文件夹中的源代码被编译为一个程序集,所以app_code文件夹中的所有文件都必须使用相同的编程语言。例如,app_code文件夹不能同时在Visual Basic和C_中包含源代码。

    但是,您可以将Web应用程序配置为将app_code文件夹的子文件夹视为单独的可编译单元。然后,每个文件夹可以包含不同编程语言的源代码。通过在web.config文件的compilation元素中创建codesubdirectories元素并添加对子文件夹的引用来指定配置。下面的示例说明如何配置名为vbcode和cscode的子文件夹,以便编译为单独的程序集:

    <compilation debug="false">
        <codeSubDirectories>
            <add directoryName="VBCode" />
            <add directoryName="CSCode" />
        </codeSubDirectories>
    </compilation>
    

    对vbcode和cscode子文件夹的引用不需要包含有关子文件夹中包含的编程语言的任何信息。与应用程序代码文件夹本身一样,ASP.NET根据子文件夹中的文件推断要使用的编译器。

        2
  •  8
  •   user692918    15 年前

    这里投票最多的答案只适用于网站项目,而不是Web应用项目。我认为很多开发人员通常使用“Web应用程序”这个术语来忽略这样一个事实,即在技术上它在.NET中是不同的。微软说:“默认情况下,Web应用程序是根据项目文件中的语言设置编译的。可以例外,但这相对比较困难。”因此,我假设唯一的方法是在一个解决方案中有两个独立的项目。(同样,网站项目没有解决方案或项目文件。)我不确定所有细节。

        3
  •  0
  •   Leroy    15 年前

    似乎你可以在同一个项目中混合它们,你需要一段代码作为一个控件。因此,如果主站点在C_中,而您将所需的VB部分作为ascx控件,则可以在站点中拖放该部分。

    我不知道你能做到这一点,但一个团队成员通过他正在做的一项工作来完成。

    推荐文章