우리는 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
코드와 함께. 반면에 FxCop은 DLL을 찾을 수 없기 때문에 문제가있는 것 같습니다 (버그입니까?) 버그가 있기 때문입니다. 어떤 버전의 FxCop을 사용하고 있습니까? –
동의하지만 컴파일 및 실행 중이지만 모범 사례에서는 수행되지 않았을 수 있습니다. FxCop 버전 10 (10.0.30319.1) – makit
이것이 사실이라면 FxCop이 불어 넣는 것보다 더 잘 알려줄 수 있다고 생각할 것입니다. –