背景:Visual Studio 2008
app_Code文件夹
   CSharpClass文件夹
      ClassCS.CS
   VBClass文件夹
      ClassVB.vb 在app_code里面为每种语言设置一个文件夹。cs文件放一个,vb文件放一个,在webconfig里面可以 
<compilation> <codeSubDirectories> <add directoryName="VBFolder" /> 
<add directoryName="CSharpFolder" /> </codeSubDirectories> </compilation>=====================
在这种情况下,C#类已经可以直接调用VB.net的类,无需任何其他步骤。但是反过来,VB.NET却无法调用C#类希望得到VB.net类调用C#类的详细步骤或代码。条件:
1. 不将C#类编译成DLL
2. 如不相信,请先试验。

解决方案 »

  1.   

    怎么又是你,你好纠结啊~~app_code里面的代码是运行时的编译,就是说实际上不同语言的2个folder在运行时的时候还是会生成2个dll的
      

  2.   

    嗯嗯我就爱钻牛角尖,抱歉咯~它们编译成几个DLL我不关心啊,我只是想知道问题的答案了……
      

  3.   

    答案就是必须先编译成dll才能引用
    1.你手动编译一个dll
    2.app_code文件夹动态的在运行时变成成dll因为只有到IL中间语言这一层,.NET框架所有的语言才给人“感觉”是没有区别的
      

  4.   

    好吧?那我把C#的类编译成DLL,让vb.net Imports这样的确能行得通是没错,可是C#却不需要把VB.NET的类编译成DLL就能引用了啊....
      

  5.   

    我已经发现了!!老娘太强大了,真是不得不佩服自己丰富的想象力与无与伦比的创造力哇想知道为什么吗?想知道为什么C#类能调用VB.NET类,而反过来不行吗?在我迎难而上不畏权威敢于尝试勇于创新的不懈努力下,终于发现了原因!!真相只有一个哼哼想知道的举手 -0- 马上结贴了
      

  6.   


    纠结啊~~~你千万别个我说是Visual Studio的原因
      

  7.   

    要生成COM组件,VB才能调用?
      

  8.   

    IIS 的每个虚拟目录有个 default language
      

  9.   

    哼哼 非也咳咳……原因嘛,说简单其实很简单。说复杂呢……还是很复杂的 -0- 至少我没弄清楚归根结底是什么原因,但是呢,浅层次的原因已经找到啦答案就在webconfig里!
    <add directoryName="VBFolder" /> 
    <add directoryName="CSharpFolder" /> 
    大家注意到这两条了吧?…………就是这两条的问题 - -
    这两条把哪条放在前面哪种语言的类就没办法直接调用……例如刚才的代码,VBFolder这行在前面,所以VB.NET的类就没办法调用C#的类
    但假如这样
    <add directoryName="CSharpFolder" /> 
    <add directoryName="VBFolder" /> 
    这样一来的话,VB.net的类就能调用C#的类,但C#的类又不能调用VB.NET的类了冷场是不是很奇怪?我也很奇怪……
    不过看来我没办法解决了,请各位大大神降吧
      

  10.   


    调用是指智能提示,以及正常使用强行写的话会出错,出现波浪线,编译也会弹出错误。提示“XXX未声明”