繁体   English   中英

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

[英]How to use VB.net Class in C# project?

我想在我的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

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

是。 因为VB.NETC#都编译成IL (中间语言),你可以简单地在VB.NET中创建一个库(一个DLL文件),然后在C#中使用该库。

最好将它转换为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;
    }
  }

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM