reflection1 C# 리플렉션으로 Struct(구조체 / ValueType) 수정(Set) 하기 StackOverflow에 매우 좋은 답변으로 달려 있는 내용인데, C#에서 Reflection을 이용해서 구조체(Struct)의 맴버 변수를 Set(Get)하려고 하면 제대로 작동되지 않는다. 접근할 수 없는 이유는 Struct는 ValueType으로 Stack에 할당되어 있기에 Reflection 연산으로 접근 할 수 없기 때문이다. 이를 의도된 Boxing을 통해서 Heap영역으로 옮긴 후 Reflection을 사용하는 방법이다. 물론 이때 다시 맴버 변수 접근으로 값을 가져오려면 Unboxing을 해야한다. 생각보다 퍼포먼스 손해가 많아 보이니, 꼭 필요한 경우나 어쩔수 없는 최후의(?) 상황에서 사용을 하자 이해를 돕기 위한 예시 코드는 아래와 같다 // 테스트로 사용할 구조체 선언 public.. 2017. 6. 19. 이전 1 다음