在C#代码中使用VB接口、枚举等
我有一个多项目的解决方案,有些项目是用VB编写的,有些是用C#编写的。我想知道是否有办法在C#类中使用VB编写的接口和/或枚举?我下面的C#代码没有编译,但是我可以在intellisense中看到接口 VB代码:在C#代码中使用VB接口、枚举等,c#,.net,vb.net,interface,C#,.net,Vb.net,Interface,我有一个多项目的解决方案,有些项目是用VB编写的,有些是用C#编写的。我想知道是否有办法在C#类中使用VB编写的接口和/或枚举?我下面的C#代码没有编译,但是我可以在intellisense中看到接口 VB代码: Namespace A Public Inteface IHandler Function Handle() As HandlerResult End Interface Public Enum HandlerResult Su
Namespace A
Public Inteface IHandler
Function Handle() As HandlerResult
End Interface
Public Enum HandlerResult
Success = 1
Fail = 0
End Enum
End Namespace
C#代码:
另外,它是一个控制台/服务应用程序,而不是ASP.Net(我知道它是可行的)
UPD:抱歉,伙计们,缺少对该界面项目的引用。现在修好了。我认为VB项目中的引用与C中的引用略有不同,这让我感到困惑。如果将C代码放在与VB代码不同的程序集中,这将起作用。为了避免循环依赖,您可能必须将所有现有VB代码移动到DLL程序集中。这样,您就可以从新的C#程序集中引用VB.Net程序集,并从主exe程序集中引用这两个程序集 请注意,如果您这样做,则从C#查看的名称空间将不仅仅是“A”,它将嵌套在VBProject的默认名称空间下面,例如
using StackOverflow7843509.A;
namespace B
{
public class MyHandler : IHandler
{
public HandlerResult Handle()
{
return HandlerResult.Success;
}
}
}
在本例中,我创建的VB项目的默认名称空间是
StackOverflow7843509
编译代码时,所有这些都归结为同一件事,因此答案是(大部分)是的-您可以将编译后的VB.NET库与C#一起使用,反之亦然。编译错误是什么?VB引用与C#引用有何不同?@ChrisDunaway,我的意思是visual studio中的引用UI:C#项目有一个名为“引用”的文件夹,其中包含所有引用库,而在VB中,所有引用都是“隐藏”完成的,在项目属性中,它是一个不同的程序集,我添加了一个对正确项目的引用和接口,它成功了,我的错。谢谢
using StackOverflow7843509.A;
namespace B
{
public class MyHandler : IHandler
{
public HandlerResult Handle()
{
return HandlerResult.Success;
}
}
}