내가 작업중인 문제 (.NET 3.5 WinForms 응용 프로그램)에 대한 가능한 해결책을 고려 중입니다.Reflection.Emit의 성능 패널티
우리의 응용 프로그램에는 응용 프로그램 사용자가 인수를 입력하는 많은 메서드 (C#)가 있습니다.
예제는 다음과 같은 뭔가 : 이름, 날짜가 현재 간단한 텍스트 상자를 사용하여 입력
public void DoSomething(string name, DateTime date)
{
// ...
}
. 풍부한 편집자, 암호로 보호 된 입력 상자, 자동 완성 등의 이점을 얻고 자합니다.
PropertyGrid을 사용하여 사용자의 입력을 만들고 싶습니다. 그러나이 컨트롤은 인수가 아닌 객체에만 바인딩 할 수 있습니다.
나는 ProperyGrid에 관한 MSDN 잡지에서 모두 우수한 기사를 읽고 :
그러나 이것은 객체입니다 PropertyGrid가 결합 될 시나리오에 도움이 될 것으로 보인다 내 경우가 아닌 사전에 알려져 있습니다.
이 시나리오를 지원할 수 있습니까? 간단하고 쉬운 솔루션을 구현할 수 있습니까?
Reflection.Emit을 사용하여 런타임에 메서드의 인수가 될 "temp"개체를 만드는 것을 생각했습니다. 나는 이것을 (Reflection.Emit 네임 스페이스를 사용하기 전에) 한 번도 해본 적이 없으며 그것을 사용했을 때의 성능 저하를 알고 싶다. (실제로 런타임 메모리 내에서 코드를 컴파일합니까 또는 어떻게 작동합니까?)
뭘 그런 용도로는 Expando 개체를 사용 중지 않는가? –
내 질문 편집 - 3.5, 아니 Expando 사용. –
그런 다음 사전을 사용하고 Reflection API로 메소드를 호출하면 어떨까요? 특정 CMS 클래스에 대해 임의의 웹 메서드 호출을 중앙 집중화하기 위해 CMS에서 동일한 것을 사용합니다. –