如何在C#项目中使用VB.net类?

时间:2011-12-11 07:57:10

标签: c# vb.net

我想在我的C#项目中使用下面的VB.Net类。有什么办法吗? 提前谢谢。

 Public Class XMLItemList
        Private sb As System.Text.StringBuilder

        Public Sub New()
            sb = New System.Text.StringBuilder
            sb.Append("<items>" & vbCrLf)
        End Sub

        Public Sub AddItem(ByVal Item As String)
            sb.AppendFormat("<item id={0}{1}{2}></item>{3}", Chr(34), Item, Chr(34), vbCrLf)
        End Sub

        Public Overrides Function ToString() As String
            sb.Append("</items>" & vbCrLf)
            Return sb.ToString
        End Function     
    End Class

4 个答案:

答案 0 :(得分:3)

是。因为 VB.NET C#都编译成 IL (中间语言),所以您只需在VB中创建一个库(DLL文件)。 NET,然后在C#中使用该库。

答案 1 :(得分:3)

最好将其转换为C#,并修复损坏的ToString()实现:

  using System.Xml;

  public class XMLItemList
  {
    XmlElement el;
    XmlDocument doc;

    public XMLItemList()
    {
      doc = new XmlDocument();
      el = doc.CreateElement("items");
    }

    public void AddItem(string item)
    {
      var itemXml = doc.CreateElement("item");
      var attr = doc.CreateAttribute("id");
      attr.Value = item;
      itemXml.Attributes.Append(attr);

      el.AppendChild(itemXml);

    }

    public override string ToString()
    {
      return el.OuterXml;
    }
  }

答案 2 :(得分:2)

您需要创建VB.NET DLL程序集(使用Visual Studio中的库项目模板),然后您可以将DLL程序集的引用添加到C#项目中。确保在程序集外部只能看到唯一的公共类型(类)。

答案 3 :(得分:0)

将类转换为C#或将类保存在类库中,并在C#项目中引用它。