2012-02-14 1 views
3

현재 C++/cli interop 라이브러리를 구축 중입니다. 라이브러리는 C# 및 vb.net 응용 프로그램에서 사용되며 .Net 4 동적 입력을 사용하고자합니다. 구성 키를 참조하는 동적 멤버 액세스를 사용하는 구성 모듈이 있는데 C#에서는 문제가 없지만 C++/cli (완전히 예상치 못한)에서는 문제가 발생합니다 C++/CLI에서이 라이브러리를 사용할 방법이 있습니까? 직접 또는 뭔가 TryGetMember()를 호출하여? C++/CLI 라이브러리가 동적 구성을 C#으로 작성된 파생 클래스에 전달하면 C#에서 여전히 동적 멤버 액세스를 사용할 수 있습니까? 기본 클래스는 C++/cli에 정의되어 있으므로 동적 키워드를 사용할 수 없습니다. (또는 내가?)C++/CLI에서 사용되는 동적 C# 객체

답변

2

동적 키워드가 관련되어있을 때 C# 컴파일러에서 사용하는 API를 단순화하는 오픈 소스 라이브러리 인 ImpromptuInterface가 있습니다 (Nuget를 통해 발견됨). C#/cli에서 작동한다고 가정합니다. 기능. 나는 F #에서 DLR을 지원하지 않는다는 것을 알고 있습니다.

여기에 동적 호출을 수행 할 수있는 list이 있습니다.

+0

이것은 유망 해 보입니다. 오늘 나중에 통합하는 방법을 살펴 보겠습니다. –

1

C#/VB 동적 형식은 컴파일러에서 일반 형식 및 메서드 호출로 변환됩니다. 생성 된 IL은 다소 복잡하지만 어떤 식 으로든 특별하지는 않습니다. 비슷한 IL을 생성하는 C++/CLI 코드를 작성할 수 있습니다.

아마도 C++/CLI 코드를 작성하는 가장 쉬운 방법은 C#에서 동적 유형을 사용하는 코드를 작성한 다음 리플렉터를 사용하여 어셈블리를 C++/CLI로 디 컴파일하는 것입니다.

+1

실제로 ".NET 1.x"에 대해 언급하지 않는 한 "managed C++"문구를 사용하지 마십시오. 현재의 기술은 C++/CLI입니다. –

+0

수정 해 주셔서 감사합니다. 나는 내 대답을 편집했다. –

+0

이것은 내 목적을 위해 조금 성가신 것처럼 보입니다. 또한 나는 반사경을 가지고 있지 않습니다. –