Mixing VB.Net and C# Code in an ASP.Net Web Site project?

前端 未结 3 996
栀梦
栀梦 2020-12-04 11:34

The question quite an older and often asked around, i have similar questions here but my question is a bit more specific.

Q1. Is it legal to mix C# and VB.Net code i

相关标签:
3条回答
  • 2020-12-04 12:01

    The answer here that has the most votes only works for Web Site projects, not a Web App project. I think a lot of developers use the term "web application" generically ignoring the fact that technically it is a different thing in .NET. Microsoft says, "By default, a Web application is compiled based on language settings in the project file. Exceptions can be made, but it is relatively difficult." So, I am assuming the only way to do this would be to have two separate projects within one solution. (Again, a Web Site project has no solution or project file.) I'm not sure of all the details.

    0 讨论(0)
  • 2020-12-04 12:10

    It seems you can mix them within the same project is you do the piece of code you require as a control. So if the main site is in C# and you do the VB part you want as a ascx control, you can drap and drop that within your site.

    I did not realise that you could do that, but a team member worked it out on a piece of work he was doing.

    0 讨论(0)
  • 2020-12-04 12:11

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

    Multiple Programming Languages in the App_Code Folder

    Because the source code in the App_Code folder is compiled into a single assembly, all the files in the App_Code folder must be in the same programming language. For example, the App_Code folder cannot include source code in both Visual Basic and C#.

    However, you can configure your Web application to treat subfolders of the App_Code folder as separate compilable units. Each folder can then contain source code in a different programming language. The configuration is specified by creating a codeSubDirectories element in the compilation element of the Web.config file and adding a reference to the subfolder. The following example illustrates how you would configure subfolders named VBCode and CSCode to compile into separate assemblies:

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

    The references to the VBCode and CSCode subfolders do not need to include any information about what programming language is contained in the subfolder. As with the App_Code folder itself, ASP.NET infers the compiler to use based on the files in the subfolder.

    0 讨论(0)
提交回复
热议问题