我需要将此代码从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;
}
答案 0 :(得分:2)
很抱歉给出了“元回答”。
对于像这样的小型转化,如果您不确定语法和/或结果,Reflector是一个不错的工具。
使用的可能性:
答案 1 :(得分:0)
为我的一个项目工作,虽然我怀疑有一些事情会让它不开心。还有你。