- - PR -
呼び出し元のクラスをロード?
1|2|3|4
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-13 18:14
コンソールアプリ、あるいはクラスライブラリから呼び出される
クラスライブラリがあります。 呼ばれるクラスライブラリで、呼び元のクラス名を 指定してインスタンス生成を行います。 この場合でも、Assembly.LoadFrom(アセンブリ名)をしないといけないのでしょうか? テスト結果は、しないと動きません。 LoadFromに、コンソールのexeファイル名か、クラスライブラリのdll名を指定しています。 根本的にわかっていないのかもしれませんが、呼び元のクラスをなぜ ロードしないといけないのでしょうか? 感覚的には、ロードせず、Activator.CreateInstanceでいけそうなのに。 | ||||
|
投稿日時: 2006-09-13 18:16
LoadFromなんて普通使う?>有識者各位
| ||||
|
投稿日時: 2006-09-13 18:20
Loadを使うという意味ですか?
それとも、ロード自体ですか? 一応、やろうとしていることは、実行時までアセンブリ名のわからない クラスの実行です。(まぁ、プラグイン機能の実装です) | ||||
|
投稿日時: 2006-09-13 18:41
「呼び出し元」だの「呼び出されるライブラリ」だの言われてもよく分かんないです。 もーちっと分かりやすく状況を説明してもらえませんか? | ||||
|
投稿日時: 2006-09-13 18:59
>もーちっと分かりやすく状況を説明してもらえませんか?
申し訳ないです。 コンソールアプリ(a.exe) →(呼び出し)→ クラスライブラリ(c.dll) c.dllにて、a.exeに含まれるHogeクラスを使用したい。 あるいは、 コンソールアプリ(a.exe) →(呼び出し)→ クラスライブラリ(b.dll) →(呼び出し)→ クラスライブラリ(c.dll) c.dllにて、b.dllに含まれるHogeクラスを使用したい。 のような関係です。 [ メッセージ編集済み 編集者: 頭脳パン 編集日時 2006-09-13 19:00 ] | ||||
|
投稿日時: 2006-09-13 19:14
Hogeは名前だけ一緒の別のクラスなんですか? 何をやりたくてそんなことになるのか、いまいち想像がつきませんが… まあ、呼び出し側からHogeとやらのインスタンスを渡すのが一番簡単でしょう。 あえて呼び出される側でごちゃごちゃ複雑なことをする必要がありますか? | ||||
|
投稿日時: 2006-09-13 19:24
>まあ、呼び出し側からHogeとやらのインスタンスを渡すのが一番簡単でしょう。
>あえて呼び出される側でごちゃごちゃ複雑なことをする必要がありますか? Hogeはプラグインクラスで、どこに作成されるかはクラスライブラリを 使用する側の自由にしています。(今のところ) また、プラグインクラスは使い方が少しやっかいで、 呼び出し側でインスタンス化しないで、クラスライブラリで なんとかしたいという理由もあります。 なので、Hogeクラスは呼び出し側でインスタンス化して渡すことは考えていません。 | ||||
|
投稿日時: 2006-09-13 19:44
c.dllを使用する際、必ずb.dll若しくはa.exeを必要とさせたいのですか? それともc.dllを呼び出す際は必ずHogeクラスを新しくコーディングさせたいのですか? クラス図を描いてパッケージ単位で括って眺めてみてください。 |
1|2|3|4
次のページへ»