2011-08-15 2 views
10

나는 다음과 같은 경고 메시지를 받고 있어요 ...왜 내 기능이 CLS와 호환되지 않습니까? 기능 'ConnectionNew'의

반환 형식은 CLS 규격이 아닙니다. 이 기능에 대한

... :

Public Function ConnectionNew(ByVal DataBaseName As String) As MySqlConnection 
     Dim connection As MySqlConnection = Nothing 
     connection = getConnection(DataBaseName()) 
     Return connection 
End Function 
이 메시지가 의미 하는가 무엇

, 내가 그것을 어떻게 해결할 수 있습니까?

+1

무엇이'MySqlConnection'입니까? 정의 된 위치는 어디입니까? 오류는 문제임을 나타냅니다. – Oded

+0

'MySqlConnection'은'MySql.Data.MySqlClient'의 멤버입니다. 나는 그것을 사용하는 것을 허락하지 않습니까? – Urbycoz

+3

물론 허용됩니다. 그러나 CLS를 준수하는 어셈블리는 아닙니다. 그리고 당신이 할 수있는 유일한 방법은 @ 한스의 대답을 따르는 것입니다. – Oded

답변

21

CLS와 호환되지 않는 유형의 객체를 반환하기 때문입니다. 당신이 그 일에 관해 할 수있는 일은 아무것도하지 않았습니다. 당신은 그 타입을 쓰지 않았습니다. 다른 방법으로는 문제가되지 않을 것입니다. 모든 .NET 유형을 지원하지 않는 다른 언어로 함수를 사용하지 않는 한. 수정 :

<CLSCompliant(False)> _ 
Public Function ConnectionNew(ByVal DataBaseName As String) As MySqlConnection 
    '' etc... 
End Function 
+1

그 밑줄은 의도적입니까, 또는 오타입니까? 나도 StructLayout의 "장식"에서 공간과 밑줄이 추가 된 것을 볼 수 있습니다. 그래서 이제 오타가 없다는 것을 분명히 알 수 있습니다. –

+1

' Public Function ConnectionNew ...'라고 쓰여진 것처럼 밑줄은 VB에서 줄의 연속을 의미합니다 (미안하다) – mwfearnley