2009-04-14 1 views
0

내 응용 프로그램에서 일부 Expression 변수를 정의 중이며 Microsoft.Scripting.Core에 대한 참조가 필요합니다. 이 어셈블리에는 .NET Framework의 System.Core 어셈블리와 동일한 네임 스페이스가 포함됩니다.System.Linq.Expressions.Expression 두 개의 네임 스페이스에서 같은 형식을 극복하는 방법 <TDelegate>?

Microsoft.Scripting.Core가 알파 인 반면 안정적인 System.Core 어셈블리의 정의를 사용하고 싶습니다.

내 앱이 Microsoft.Scripting.Core 대신 System.Core의 System.Core에서 System.Linq.Expressions 네임 스페이스를 기본 설정으로 지정하지만 여전히 참조를 유지할 수있게하려면 어떻게해야합니까? 그들은 같은 공간하지만 서로 다른 어셈블리 인 경우

답변

1

마크 (Marc)가 말했듯이, 대단히 좋지는 않지만 - 외계 별칭이 길입니다.

솔루션 탐색기의 "참조"부분에서 System.Core 어셈블리를 선택하고 속성으로 이동하십시오. "별칭"속성을 "syscore"를 포함하도록 변경하십시오 (예 : 당신이 System.Linq.Expressions를 사용하고자하는 모든 파일의 맨 위에 다음

Aliases: global,syscore 

입력 :

extern alias syscore; 
using syscore::System.Linq.Expressions; 

그것은 추한,하지만 적어도 나는 ',주의해야 가능한 :

입니다 확장 메서드 및 외부 별칭 인 경우 일부 문제가 발생했습니다 (as described in this question).

1

, 당신은 "통근 별칭"볼 필요가 있습니다,하지만 매우 빠르게 매우 지저분 가져옵니다.

다른 네임 스페이스 인 경우 다른 using 지시문을 사용하십시오. 또한 using 앨리어싱을 사용할 수 있습니다. 그러나 람다는 항상 (AFAIK) 원래 네임 스페이스를 사용합니다.

+0

두 어셈블리 모두 System.Linq.Expressions과 동일한 네임 스페이스를 사용하고 있습니다. – sipwiz

관련 문제