C#에서 methodinfo를 통과하는 가장 쉬운 방법은 무엇입니까?C# 메서드를 통과하고 메서드 본문을 해석하십시오.
메소드 본문을 탐색하고 필드 참조 등을 찾고 유형을 검색하려고합니다.
하는 System.Reflection에서있다 :
낮은 수준이 좀 내가이 몸을 통과 할 수있을 것입니다 전에 "일부"작업을 필요로mi.GetMethodBody().GetILAsByteArray()
.
나는 Cecil이 존재한다는 것을 알고 있지만, cecil을 사용하여 메모리 어셈블리를로드하는 데 문제가 있음을 알고 있습니다. 내가 함께 일하고있는 어셈블리는 항상 "디스크에"있지 않습니다. 예를 들어 컴파일 된 메모리 어셈블리 일 수 있습니다. 부, 그리고 난 없이 디스크에 임시 어셈블리를 작성하지 않고 깨끗한 솔루션을 wan't.
거기에 다른 대안이 있습니까?
Cecil 및 메모리 내장 어셈블리의 문제점은 무엇입니까? –
@Tim : http://markmail.org/message/yssmfgrsqnnnzrvt를 찾았습니다. 조금 오래되었습니다. AssemblyFactory에는 file, byte [] 또는 Stream에서만 기존 어셈블리를로드하는 메소드가 없습니다. Boo에서 생성 된 어셈블리를 byte []에 직렬화하려고 시도했지만 "Type System.Reflection.Emit.AssemblyBuilder가 Serializable로 표시되지 않았습니다." 아마 내가 어셈블리에서 바이트 []를 (를) 검색하는 데 문제가 있습니다. – Marcus