나는 동적 객체를 반환하는 MyLibrary1
에 정적 메서드가 있습니다.RuntimeBinderException 다른 라이브러리에있는 메서드에서 'dynamic'속성의 속성을 읽을 때
public static dynamic GetObjects()
{
return new { test = "something" };
}
그러나 위의 방법을 MyLibrary2
에서 액세스하면 디버거에 값과 개체가 올바르게 반환됩니다.
dynamic b = MyLibrary1.GetObjects();
string name = b.test;
은 내가
b.test
을 읽을 때 "
'object' does not contain a definition for 'test'
을 말한다
RuntimeBinderException
얻을. 동일한 코드 내가 호출 라이브러리에 방법을 이동할 때 예상대로 작동합니다.
와우, 이것은 매우 특이합니다. 이 질문은 런타임 예외라는 점을 분명히하기 위해 제목/질문을 약간 편집했습니다. –
콘솔 앱과 클래스 라이브러리 (.NET 4를 대상으로하고 있으며 둘 다'Microsoft.CSharp.dll'을 참조)로 확인했습니다. 표시된 OP와 마찬가지로, 콘솔 응용 프로그램에서 직접 메서드를 호출 할 때 제대로 작동합니다. 그러나 라이브러리에서 정확한 동일한 코드를 사용하면 예외가 발생합니다. * 페이징 @EricLippert! * –