4
동적 어셈블리를 사용하여 런타임에 파생 클래스를 만듭니다. 리플렉션을 사용하여 기본 클래스의 기본 메서드와 개별 메서드를 동적 어셈블리의 파생 클래스 내에서 사용하거나 호출 할 수 있는지 여부를 어떻게 알 수 있습니까?리플렉션을 사용하여 클래스/메소드에 액세스 할 수 있는지 확인하는 방법은 무엇입니까?
동적 어셈블리를 사용하여 런타임에 파생 클래스를 만듭니다. 리플렉션을 사용하여 기본 클래스의 기본 메서드와 개별 메서드를 동적 어셈블리의 파생 클래스 내에서 사용하거나 호출 할 수 있는지 여부를 어떻게 알 수 있습니까?리플렉션을 사용하여 클래스/메소드에 액세스 할 수 있는지 확인하는 방법은 무엇입니까?
가시성을 쿼리하는 데 사용할 수있는 MethodInfo
및 Type
개체에는 여러 가지 속성이 있습니다.
예를 들어, 유형 당신은 IsPublic
, IsPrivate
, IsNotPublic
, IsNested
, IsNestedFamOrAssembly
, 그리고 훨씬 더를 확인할 수 있습니다. IsPublic
, IsPrivate
, IsFamilyOrAssembly
등
그래서 유형에 Assembly
특성 등의 정보와 함께이 결합 (그래서 당신은 말할 수 : 방법합니다 (MethodInfo
개체)에 대한
. NET 프레임 워크가 실제로 내 질문에 대답하는 직접적인 방법을 제공하지 않는다면 어딘가에서 최소한 규칙 목록이 있습니까? 예를 들어, 중첩 된 클래스 인 IsPublic이 부모 클래스가 내부 클래스가 아니라 액세스 가능하다는 것을 의미하지 않는다는 사실을 잊어 버릴 수 있습니다. – Qwertie
그래, 문제가있다. 규칙이 있지만 코드를 직접 작성하여 직접 확인해야한다. 나는 모든 규칙이 무엇인지 나열하는 특정 리소스에 대해서는 확신하지 못한다. 내가이 일을 직접한다면 아마도 가장 일반적인 경우를 다루는 무언가를 만들었을 것이고, 그 다음에 다른 것들을 추가 할 것이다. 당신의 청중이 누구인지에 따라 달라집니다. – ckramer