2012-02-14 11 views
3

私は現在、C++/cli interopライブラリを構築しています。ライブラリはc#とvb.netのアプリケーションで消費されますが、.Net 4の動的タイピングを使用したいと思います。私は構成キーを参照するために動的メンバーアクセスを使用する構成モジュールを持っていますが、これはC#で正常に動作しますが、C++/cli(全く予期せぬことです)で問題を起こしています C++/CLIでこのライブラリを使用する方法はありますか? TryGetMember()を直接または何かを呼び出すことによって)? C++/CLIライブラリが動的構成をC#で記述された派生クラスに渡すと、C#は動的メンバーアクセスを使用できますか?基本クラスはC++/cliで定義されているので、dynamicキーワードは使用できません。 (または私は?)C++/CLIで使用される動的なC#オブジェクト

答えて

2

ダイナミックキーワードが関与しているときにc#コンパイラで使用されるapiを簡略化するオープンソースライブラリImpromptuInterfaceがあります(静的なので、C++/cliで動作すると仮定します)機能。私はそれがDLRサポートを持っていないF#で動作することを知っています。

ここでは、動的起動のlistがあります。

+0

これは有望で、リードのおかげです。私は今日後でそれを統合することを見ていきます –

1

C#/ VBの動的型は、コンパイラによって通常の型とメソッド呼び出しに変換されます。生成されたILはやや複雑ですが、特別な方法ではありません。あなたは間違いなく同様のILを生成するC++/CLIコードを書くことができます。

おそらく、C++/CLIコードを書く最も簡単な方法は、C#で動的型を使用するコードを記述し、Reflectorを使用してアセンブリをC++/CLIに逆コンパイルすることです。

+1

実際に.NET 1.xについて話していない限り、「managed C++」というフレーズを使用しないでください。現在の技術はC++/CLIです。 –

+0

訂正してくれてありがとう - 私はそれを知らなかった。私は私の答えを編集しました。 –

+0

これは私の目的のために少し煩わしいようですが、また私はリフレクターを持っていません –