2011-03-11 2 views
2

모노 토치 (네임 스페이스 System.Collections.Generic)에서 일반 스택 유형을 사용하고 있습니다. 별도의 NUNIT 프로젝트에서 , 즉 monotouch 패키지 만 어셈블리를 참조하고, 내 monotouch 클래스를 확장하고 스택 재차 생성 오전 :모노 터치 System.Collections.Generic.Stack을 암시 적으로 같은 유형으로 변환 할 수 없습니다.

using System.Collections.Generic; 
namespace Tests 
{ 
public class MyExtendedClass : MyExtendableClass 
    { 
     public MyExtendedClass() 
     { 
      m_myStackVariable = new Stack<string>(); 

나에게 다음과 같은 오류 메시지가 있습니다 :

Cannot implicitly convert type System.Collections.Generic.Stack<string> to System.Collections.Generic.Stack<string>

스택 유형에서 "기본으로 이동"을 시도하면 어셈블리 브라우저에서 mscorlib이 표시됩니다.이 라이브러리 아래에서 System.Collections.Generic 네임 스페이스는 어셈블리에서 System.dll과 같은 유형의 스택 <> 유형을 보유하지 않습니다 브라우저.

누구의 아이디어가 있습니까? 동일한 네임 스페이스에 두 프로젝트 유형이 같은 이름의 두 가지 유형이 있습니까? 나에게 슬픔을 줄 수 있는게 뭐야?

답변

0

NUnit 프로젝트가 MonoTouch 코어 라이브러리를 참조하는지 확인하십시오. 그래도 때로는 코드에 따라 문제가 해결되지 않는 경우도 있습니다.

NUnit 프로젝트는 Mac의 Mono 용 라이브러리를 사용하므로 StackT (T)를 반환하는 MonoTouch 라이브러리는 Mac의 Stack (T)으로 캐스트 할 수 없습니다.

이 문제는 근본적으로 "var"키워드를 사용하여 운 좋게 단위 테스트를 수행 할 수 없지만 상황에 따라 다릅니다.

더 많은 코드를 게시 할 수 있습니까? 해결 방법이있을 수 있습니다.

+0

안녕하세요! nunit 프로젝트에서 기본 시스템 참조를 제거하고 monotouch 라이브러리 (monotouch.dll, mscorlib.dll, System.Core.dll, System.dll, System.xml.dll - 모두 모노 터치 패키지에서)를 추가했습니다. 해결 방법을 찾았지만 이제는 오류가 계속 발생합니다. "System.MissingFieldException : Field 'MyNamespace.MyExtendableClass.m_myStackVariable'not found". 같은 오류가 발생합니까? – TenaciousG