2014-05-01 2 views
0

우리는 VB.NET에서 C# 라이브러리를 참조하는 응용 프로그램을 가지고 있습니다. 인터페이스 정의는 C# 라이브러리에 있으며 구현은 VB.NET 응용 프로그램에 있습니다. 인터페이스 정의 중 하나는 nullable 구조체에 대한 형식화 된 메서드입니다.제네릭을 포함하는 C# 인터페이스를 참조하는 VB.NET 구현의 FxCop 버그입니까?

의 FxCop이 제대로 분석의 오류보고 할 수 없습니다

다음 오류가 발생했습니다

모듈을 읽는 동안 '콘솔'멤버 참조를 확인할 수 없습니다 : [도서관, 버전 = 1.0.0.0, 문화 = 중립, PublicKeyToken = null] Library.IWithGeneric :: GetSomething.

나는 이것을 증명하기 위해 기본 개요 응용 프로그램을 만들었습니다.

FxCop이 모듈을로드 할 수 있도록 코드가 누락되어 있습니까 (경고없이 컴파일되고 실행됩니다)? 아니면 단순히 FxCop 버그입니까?

IWithGeneric.cs

namespace Library 
{ 
    public interface IWithGeneric 
    { 
     T? GetSomething<T>() where T : struct; 
    } 
} 

VbGenericImplementation.vb

Imports Library 

Public Class VbGenericImplementation 
    Implements IWithGeneric 

    Public Function GetSomething(Of T As Structure)() As T? Implements IWithGeneric.GetSomething 
     Return New T 
    End Function 

End Class 

Root.vb

Module Root 

    Sub Main() 

     Dim test As New VbGenericImplementation 

     Dim result = test.GetSomething(Of Integer)() 

     System.Console.WriteLine(result) 
     System.Console.ReadLine() 

    End Sub 

End Module 
+0

코드와 함께. 반면에 FxCop은 DLL을 찾을 수 없기 때문에 문제가있는 것 같습니다 (버그입니까?) 버그가 있기 때문입니다. 어떤 버전의 FxCop을 사용하고 있습니까? –

+0

동의하지만 컴파일 및 실행 중이지만 모범 사례에서는 수행되지 않았을 수 있습니다. FxCop 버전 10 (10.0.30319.1) – makit

+0

이것이 사실이라면 FxCop이 불어 넣는 것보다 더 잘 알려줄 수 있다고 생각할 것입니다. –

답변

0

마이크 rosoft는이 문제를 "자연스럽게 해결할"버그로 마감했습니다.

일리노이가 혼란 스럽기 때문에 FxCop이 너무 심합니다. VS "14"의 경우 IL 기반 분석에서 Roslyn을 기반으로하는 소스 기반 분석 엔진으로 이동하고 있습니다. 우리가 그러한 전환을 할 때, 이런 종류의 문제는 자연스럽게 해결되어야합니다.

알렉스 터너

수석 프로그램 관리자

Visual Basic 및 C# 컴파일러

에서 : http://connect.microsoft.com/VisualStudio/feedback/details/870827/fxcop-10-0-unable-to-process-vb-net-assembly-containing-c-generics-implementation 당신이 코드는 컴파일하고 제대로 실행 말 때문에 아무 문제가 없기 때문에