2010-07-12 4 views
2

이 코드를 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; 
    } 

답변

2

미안.

문법 및/또는 결과가 확실하지 않은 경우 Reflector은 이와 같은 작은 전환의 경우 유용한 도구입니다. 사용

가능성 :

  1. C#에서 컴파일 및 VB.Net에 디 컴파일. 내가 불행 할 것 몇 가지가 의심하지만 VB.Net에서
  2. 컴파일은 내 프로젝트 중 하나에 근무
원래
+0

글쎄, 내가 오류의 원인으로 synatx를 제거했다고 생각합니다. Reflector를 사용하여 똑같은 코드를 작성했습니다. – jweaver

0

C# to VB Converter

비교. 그리고 너 또한.

+0

나는 그가 이미 사용하고있는 것과 동일한 VB.NET 코드를 어떻게 생성 하는지를 보았다. – Powerlord

+0

나는이 컨버터와 또 다른 컨버터를 시도했는데 둘 다 같은 결과를 내놓았다. – jweaver

+0

충분히 공정하게, 나는 당신의 코드를 연결하려고 시도하지 않았다. VB 프로젝트에 동일한 참조가 있는지, 동일한 버전의 .NET을 사용하는지 등과 같은 표준 작업을 수행 했습니까? – Carlos