.Net에서 동적 객체로 작업하기 시작 했으므로 어떻게해야하는지 알 수 없습니다.동적 객체에서 메서드 호출에 제네릭 유형 가져 오기
DynamicObject에서 상속하는 클래스가 있으며 TryInvokeMember 메서드를 재정의합니다.
class MyCustomDynamicClass : DynamicObject
{
public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
{
// I want to know here the type of the generic argument
}
}
그리고 그 메서드 내에서 호출에 일반 인수의 유형 (있는 경우)을 알고 싶습니다.
나는 다음과 같은 코드를 호출하는 경우 , 나는 내가 얻을 수있는 오버라이드 방법 내부에 중단 점을 배치하면 내 동적 객체 현재
dynamic myObject = new MyCustomDynamicClass();
myObject.SomeMethod<bool>("arg");
myObject.SomeOtherMethod<int>("arg");
의 오버라이드 메서드 내 선택 System.Boolean 및 선택 System.Int32의 값을 얻으려면 호출되는 메소드의 이름 ("SomeMethod"및 "SomeOtherMethod"및 인수의 값은 있지만 generic 유형은 제외).
어떻게 이러한 값을 얻을 수 있습니까?
감사합니다.
대부분의 경우 리플렉션을 사용하여 메소드를 검색해야합니다. MethodInfo는 제네릭 형식 인수에 대한 액세스를 제공합니다. –
문제는 메서드가 존재하지 않는다는 것입니다. 제네릭 정보가없는 CallInfo 속성이있는 바인더 개체에 액세스 할 수 있습니다. – willvv
알다시피, 나는 이것에 대한 샘플을 잠시 동안 사용 해왔다. 그리고 일반적인 정보가 어디에 있는지 알 수 없다. 이것은 실제로 정말로 좋은 질문입니다. – Tejs