reflection.emit

    1

    1답변

    System.Reflection.Emit.AssemblyBuilder를 만들면이를 유지 (AssemblyBuilderAccess.Save 등으로 초기화)하거나 일시적으로 (AssemblyBuilderAccess.Run 등으로) 유지할 수 있습니다. 입력으로 가지고있는 어셈블리 빌더 용 ModuleBuilder를 생성 할 것입니다. 하지만 임시 어셈블리를 위

    3

    1답변

    큰 그림에서 주 도메인의 dll에서 메서드를 실행하려고하지만 그 후 해당 dll을 언로드합니다. 지금까지 나는 Assembly \ dll을 새로로드 한 AppDomain을 작성했으며 MarshalByRefObject I는 본체를 가져 왔으며 MaxStackSize이라는 기본 도메인에 메소드 DynamicMethod을 작성하고 내부에 본문을 다시 작성하여 호

    3

    1답변

    나는이 같은 방법 클래스를 방출 발견 방출 선언과 같은 유형의 속성 클래스를 방출 : class MyClass { String MyProperty { get; set; } } 다음 방출하는 방법을 알아낼 수 없습니다 : class MyClass { MyClass MyProperty { get; set; } } 을 내가 직면

    1

    1답변

    동적으로 생성 된 어셈블리의 "일반"어셈블리에있는 메서드를 호출 할 수 있습니까? 예를 들어, 어셈블리 B가 동적 조립체 (A) 및 어셈블리에서 (발광 통해) 구성되는 B지도 방법은 MissingMethodExcetion 실행될 때 어셈블리 A. public interface IMapper { void Map(); } public void

    1

    1답변

    최근에 Reflection.Emit을 배우기 시작 했으므로 코드에서 더 나은 성능을 위해 모든 Activator 사용을 대체 할 수있었습니다. 나는 현재 일종의 직렬화 및 비 직렬화 라이브러리에 대해 생각하고있다. 특히 deserialization을 위해 나는 serialization 이전에했던 것과 똑같이 객체의 상태를 다시 만들고 싶습니다. (seria

    1

    1답변

    컴파일 타임에 알 수없는 유형의 생성자를 호출하는 다양한 방법을 비교하려고합니다. 4 가지 메서드가 있습니다. 즉, (타이밍 비교를 위해) 생성자를 직접 호출하고, ConstructorInfo.Invoke를 호출하고, Expression.Lambda.Compile을 호출하고, Activator.Create를 호출하는 4 가지 메서드가 있습니다. 내가 작동하

    1

    1답변

    그래서 여기에 System.Reflection.Emit을 사용하여 기존 클래스에서 바로 새 클래스를 생성하려고합니다. 기본적으로 나는이 기존 클래스의 모든 public 속성 및 필드를 가져 와서 동적으로 생성 된 새 클래스에 적용하려고합니다. 지금까지는 그렇게 좋았지 만, 기존 클래스의 필드 중 일부는 System.Xml.Serialization 어셈블리에

    -1

    1답변

    CLR을 사용하면 Castclass 조작이 수행되었는지 여부에 관계없이 개체 참조가있는 필드를 설정할 수 있습니다. 스택 맨 위에있는 객체 참조가 approperiate 유형인지 확실하다면 필드를 설정하는 것이 좋습니까? 그렇다면 Castclass은 컴파일러에서 사용하는 안전 기능입니까?

    2

    1답변

    주소를 변경할 수있는 방법이 있습니까? OpCodes.Ret가 점프합니까? 일리노이 메서드는 C#에서 사용하는 호출 스택을 변경할 수 있습니까? 내가 아는 한 C++에서는 스택의 값에 액세스하고 리턴 주소를 변경할 수 있습니다. 일리노이에서 "InvalidProgramException"예외로 현재 메소드를 넘어서 스택에 액세스하려고 시도한 모든 것이 실패합

    -1

    1답변

    저는 Reflection.Emit API를 처음 사용하고 몇 가지 간단한 I/O 검사를 기반으로 종료 코드를 반환하는 진입 점이있는 최소한의 어셈블리를 생성했습니다. 외부 어셈블리를 만드는 이유는 코드 조각이 현재 프로세스 공간 외부에서 실행되어야하고 일시적인 자체가되기 때문입니다. 결국 앱을 만들면 삭제됩니다. 그렇다면 생성 될 코드는 상당히 복잡하므로