>백엔드 개발 >C++ >공급업체 어셈블리를 수정하지 않고 외부 어셈블리에서 내부 클래스에 어떻게 액세스할 수 있습니까?

공급업체 어셈블리를 수정하지 않고 외부 어셈블리에서 내부 클래스에 어떻게 액세스할 수 있습니까?

DDD
DDD원래의
2024-12-25 05:44:21788검색

How Can I Access Internal Classes from an External Assembly Without Modifying the Vendor Assembly?

외부 어셈블리에서 내부 클래스 액세스

외부 어셈블리가 공급업체에서 제공한 내부 유형의 개체에 액세스해야 하는 시나리오에서 조립하다 난관에 부딪히게 됩니다. 이 기사에서는 공급업체 어셈블리를 수정하지 않고 이 문제를 극복하는 방법을 살펴봅니다.

딜레마

다음 시나리오를 고려하십시오. 외부 어셈블리에는 벤더 어셈블리. 그러나 이 개체는 실제로 외부 어셈블리에서 필드와 메서드에 액세스할 수 없는 내부 클래스의 인스턴스입니다.

해결책: InternalsVisibleTo 속성

By 기본적으로 내부 멤버는 해당 멤버가 정의된 어셈블리 내에서만 액세스할 수 있습니다. 그러나 "friend" 어셈블리에는 예외가 있습니다.

내부 멤버에 대한 외부 어셈블리("friend" 어셈블리) 액세스 권한을 부여하려면 AssemblyInfo.cs 파일에 [어셈블리: InternalsVisibleTo] 특성을 추가합니다.

이 속성을 사용하면 외부 어셈블리가 공급업체 어셈블리의 내부 멤버가 자체 어셈블리 내부에 있는 것처럼 액세스할 수 있습니다.

참고: 이 솔루션은 내부 멤버를 외부 어셈블리에 노출하므로 테스트 목적으로만 적합합니다.

위 내용은 공급업체 어셈블리를 수정하지 않고 외부 어셈블리에서 내부 클래스에 어떻게 액세스할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.