2010-05-26 2 views
4

다음과 같은 클래스가 있습니다 ... 아이디어는 일부 논리 처리를 수행하고 읽기 전용 객체를 반환하는 것입니다. 내가 함수에 paramerter로 상기 시험 객체를 사용하는 경우인수 유형이 CLS와 호환되지 않습니다 ... 클래스 구조

public class Test 
{ 
    public object property1 { get; private set; } 
    public string property2 { get; private set; } 


    private Test(){} 

    public static Test GetTest(XDocument document) 
    { 
     if (document== null) 
      return null; 

     return new Test 
     { 
      property1 = l_document.Element("something").value, 
      property2 = l_document.Element("anotherthing").value, 
     }; 
    } 
} 

, 나는 메시지 인수 형은 CLS 규격 ... 어떤 제안하지 않는거야? 다른 방법으로는 읽기 전용 객체를 얻을 수 있습니까?

덕분에, 카마

+0

메시지를 생성하는 실제 코드를 게시하십시오. –

답변

10

편집 : (. 이전의 대답을 제거)

내가 강력하게 당신이 Test 클래스를 선언하는 어셈블리에 [assembly:CLSCompliant(true)]을 참을 수 없어 단지 문제 의심이에게 자신을 시도 가졌어요. 그렇게해라. 그러면 모두 복숭아 여야한다.

+0

그것에 대한 Microsoft의 토론 링크 : http://msdn.microsoft.com/en-us/library/bhc3fa7f.aspx 및 다른 문서 http://www.devarticles.com/c/a/C-Sharp/Making - 귀하의 코드 - CLS 준수 /. Jon과 CLS가 호환되지 않는 것을 볼 수있는 유일한 방법은 XDocument 사용법입니다. –

+0

@ ImperialLion : 아니오, 테스트 어셈블리 일뿐입니다. –

+0

나는 오류가있는 곳을 오해했다. 예, 어셈블리를 준수한다고 표시하지 않으면 해당 문제가 발생할 수도 있습니다. 나는 그가 클래스 자체가 비 호환 (non-compliant)하다는 에러를 얻고 있다고 생각했다. –

관련 문제