이 코드를 C#에서 VB로 변환해야합니다. 나는 적절한 구문이 확실하지 않습니다.C#에서 vb.net 로의 변환
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# 버전은 잘 실행하지만 난이납니다 비주얼 베이직 버전을 실행하려고 할 때 예외 :
System.IO.FileLoadException 처리되지 않았습니다. 메시지 = 주어진 어셈블리 이름 또는 코드베이스가 잘못되었습니다. (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;
}
글쎄, 내가 오류의 원인으로 synatx를 제거했다고 생각합니다. Reflector를 사용하여 똑같은 코드를 작성했습니다. – jweaver