0

2つのプロジェクトがあります。1つのプロジェクトには異なる情報を持つ1つのフォームとクラスがあり、この情報は実行時にのみ取得されます。別のプロジェクトには別のフォームがあり、最初のクラスのオブジェクトを使用して情報を取得します。フォームの中に入れます。

基本的に私はいくつかの調査を行い、そのためにReflectionを使用してみましたが、見つけたすべての例が正しく機能しませんでした(実際にはまったく機能しませんでした)。

        Assembly a = Assembly.LoadFile("Server.GUI.LocalGUI.dll");
        object o = a.CreateInstance("ServerManager");
        Type t = o.GetType();

これは私が試したコードですが、正しいかどうかはわかりません...

.net2.0を使用しています

実行時に別のdllで1つのオブジェクトのデータを使用する方法の実用的な例を持っている人はいますか?

4

2 に答える 2

1

私は2つのプロジェクトを持っています:MyForm1MyForm2。のプロジェクトMyForm1を参照してくださいMyForm2。記入してMyForm1ください。MyForm1inのインスタンスを作成しMyForm2、メソッドとその値にアクセスします。

または、別のLibraryプロジェクトを作成します。その中に静的変数を公開します。両方のFormsプロジェクトでこのライブラリを参照してください。から値を割り当てMyForm1、の同じプロパティにアクセスしますMyForm2

ただし、コードを本当にマネージコードにしたい場合は、MVPを学習して実装してみてください。それはあなたにあなたの問題の解決策を見る新しい方法を与えるかもしれません。

同じプロジェクトで両方のフォームを作成することもできます。別のライブラリでデータを処理します。

于 2013-02-12T14:52:25.370 に答える
0

それがあなたがしたいのであれば-あなたはこのようにそれを行うことができます:

Assembly a = Assembly.LoadFile("Server.GUI.LocalGUI.dll");
dynamic o = a.CreateInstance("ServerManager");
o.Method();

しかし、絶対に必要な場合を除いて、これはお勧めしません。キーワードの使用はdynamic近道である可能性がありますが、行きたくない場所への近道である場合もあります。

于 2013-02-12T14:47:03.230 に答える