2013-01-16 5 views
17

내 어셈블리의 내부 클래스를 다른 어셈블리에서 볼 수있게하는 것이 진짜입니까?내부 클래스를 다른 어셈블리에서 볼 수있게 만들기

내가 어셈블리 정보 파일에 대해 알고

[assembly: InternalsVisibleTo()] 

속성.

하지만 내 경우에는 제대로 작동하지 않습니다. 이를 수행하는 주요 목적은 LINQPAD에서 가능한 호출 메소드를 만드는 것입니다. 그래서이 [assembly: InternalsVisibleTo("LINQPad")]가 작동하지 않습니다. 이유를 모르겠다. 내 프로젝트에서 의존성 분석기를 사용하고 linqpad 같은 일을하기가 어렵습니다. 어떠한 제안?

+4

LINQPad가 동적으로 어셈블리를 생성하고 있다고 생각합니다. 형식에 대한 액세스가 필요한 LINQPad 어셈블리 자체는 아닙니다. –

+0

@ 존 Skeet 자동 완성도 작동하지 않습니다. LINQPAD 어셈블리 같아. – Neir0

+2

자동 완성은 거의 리플렉션을 기반으로합니다. 공개 속성에만 필터링을 적용 할 것으로 기대됩니다. LINQPad 어셈블리 자체는 코드에 대한 * 직접 호출을 포함하지 않습니다. –

답변

44

방금 ​​업로드 할 수있는 a new beta을 업로드했습니다.

는 그 내부 액세스에 LINQPad를 원하는 도서관에 다음 속성을 추가

[assembly: InternalsVisibleTo("LINQPadQuery")] 

는 또한 LINQPad의 환경 설정에서이 기능을 사용하도록 설정해야합니다 (편집 | 기본 설정 | 고급).

어떻게 지내세요.

+0

저에게 맞습니다. 내부 메서드에 액세스하기 위해 리플렉션으로 되돌려 야했던 때가 있었기 때문에이 기능이 유용 할 것입니다. 감사합니다. – sgmoore

+0

액세스 수준에 대한 경고는 나에게도 없어졌지만 이제는 다음과 같이 표시됩니다. '일관성없는 액세스 가능성 : 기본 클래스'Database.Model.CustomDataContext '는'UserQuery '클래스보다 액세스하기가 쉽지 않습니다. 이 문제를 어떻게 풀 수 있는지 아십니까? CustomDataContext의 서명은'내부 부분 클래스 CustomDataContext : DbContext'입니다. – SeriousM

+1

최신 빌드를 사용해보십시오 - 방금 해결 방법을 추가했습니다 –

관련 문제