C#到vb.net的转换

时间:2010-07-12 14:31:58

标签: vb.net

我需要将此代码从C#转换为VB。我不确定正确的语法。

C#

[XcoWorkerExtension(Optional = new Type[] { typeof(Subscribe<OnNewsArrived>) })]
    private readonly XcoPublisher<OnNewsArrived> publisher = new    XcoPublisher<OnNewsArrived>();

这就是我在VB中提出的:

<XcoWorkerExtension([Optional]:=New Type() {GetType(Subscribe(Of OnNewsArrived))})> _
    Private ReadOnly publisher As New XcoPublisher(Of OnNewsArrived)()

C#版本运行正常,但是当我尝试运行VB版本时,我遇到了这个异常:

System.IO.FileLoadException未处理   Message =给定的程序集名称或代码库无效。 (HRESULT异常:0x80131047)   源= mscorlib程序

在此子组的第一行生成异常:

internal XcoWorkerExtensionAttribute Get_worker_extension_attribute(FieldInfo field)
    {
        object[] fieldAttrs = field.GetCustomAttributes(typeof(XcoWorkerExtensionAttribute), false);
        object[] classAttrs = field.FieldType.GetCustomAttributes(typeof(XcoWorkerExtensionAttribute), false);
        if (fieldAttrs.Length > 0 && classAttrs.Length == 0)
            throw new XcoWorkerException("A field can only be marked with the XcoWorkerExtension attribute when its type is also marked with this attribute");

        if (fieldAttrs.Length > 0)
            return (XcoWorkerExtensionAttribute)fieldAttrs[0];
        if (classAttrs.Length > 0)
            return (XcoWorkerExtensionAttribute)classAttrs[0];
        return null;
    }

2 个答案:

答案 0 :(得分:2)

很抱歉给出了“元回答”。

对于像这样的小型转化,如果您不确定语法和/或结果,Reflector是一个不错的工具。

使用的可能性:

  1. 在C#中编译,并反编译为VB.Net。
  2. 在VB.Net中编译,与原始
  3. 进行比较

答案 1 :(得分:0)

C# to VB Converter

为我的一个项目工作,虽然我怀疑有一些事情会让它不开心。还有你。