C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: DLLの参照


(過去ログ 75 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■44433 / inTopicNo.1)  DLLの参照
  
□投稿者/ ナナイ (4回)-(2009/12/09(Wed) 13:30:38)

分類:[.NET 全般] 

Visual Studio2005 C#です。

EXEファイル以下に例えば、Sample.dllがあった場合、
ソリューションエクスプローラーではなく、プログラム上でDLLの参照指定を行うことは出来るのでしょうか?
引用返信 編集キー/
■44434 / inTopicNo.2)  Re[1]: DLLの参照
□投稿者/ επιστημη (2308回)-(2009/12/09(Wed) 13:48:32)
επιστημη さんの Web サイト
> ソリューションエクスプローラーではなく、プログラム上でDLLの参照指定を行うことは出来るのでしょうか?

なにがしたいんですか?

実行時にアセンブリ(DLL)を読み込んでリフレクションでメタ情報読みだして
オブジェクトを生成し、呼び出すことはできますよ。

引用返信 編集キー/
■44435 / inTopicNo.3)  Re[1]: DLLの参照
□投稿者/ ヴァン (44回)-(2009/12/09(Wed) 13:54:56)
No44433 (ナナイ さん) に返信
> Visual Studio2005 C#です。
>
> EXEファイル以下に例えば、Sample.dllがあった場合、
> ソリューションエクスプローラーではなく、プログラム上でDLLの参照指定を行うことは出来るのでしょうか?

こんなことでしょうか?

http://dobon.net/vb/dotnet/programing/plugin.html

引用返信 編集キー/
■44442 / inTopicNo.4)  Re[2]: DLLの参照
□投稿者/ ナナイ (6回)-(2009/12/09(Wed) 16:03:05)
ありがとうございます。

何をしたいのかといいますと、
作成した複数のユーザーコントロールのDLLを動的に読込ませたいのです。

Googleでいろいろ探しているのですが、よい方法が見つかりません。

なにかよい方法があればご教授いただきたいです。
よろしくお願いいたします。
引用返信 編集キー/
■44457 / inTopicNo.5)  Re[3]: DLLの参照
□投稿者/ Jitta on the way (486回)-(2009/12/09(Wed) 18:27:11)
No44442 (ナナイ さん) に返信
> ありがとうございます。
>
> 何をしたいのかといいますと、
> 作成した複数のユーザーコントロールのDLLを動的に読込ませたいのです。
>
> Googleでいろいろ探しているのですが、よい方法が見つかりません。
>

アプリケーション本体だけをリリースし、追加機能は他の人に開発していただく、「プラグイン機能」を実装したいのでしょうか。
それとも、アプリケーションの開発時に、他の所で開発した物を追加したいのでしょうか。


後者の様に思われますが、「何故」、そうしたいのでしょう。開発時のことであれば、インテリセンスや型チェックが使える、参照追加の方が良いと思います。そのメリットを上回るメリットがあるのでしょうか。
引用返信 編集キー/
■44491 / inTopicNo.6)  Re[4]: DLLの参照
□投稿者/ ナナイ (7回)-(2009/12/10(Thu) 09:39:26)
こんにちは

どちらかというとやりたいことはプラグインです。

以下のように自己解決いたしました。

// DLLをロード
System.Reflection.Assembly myAsm = System.Reflection.Assembly.LoadFrom("Test.dll");
// DLL+クラス名取得
Type[] ClassFullname = myAsm.GetExportedTypes();

Object obj = myAsm.CreateInstance(ClassFullname[0].FullName);
UserControl User1= (UserControl)obj;

ありがとうございました。

解決済み
引用返信 編集キー/
■44497 / inTopicNo.7)  Re[5]: DLLの参照
□投稿者/ なちゃ (341回)-(2009/12/10(Thu) 11:02:35)
No44491 (ナナイ さん) に返信
> // DLL+クラス名取得
> Type[] ClassFullname = myAsm.GetExportedTypes();
>
> Object obj = myAsm.CreateInstance(ClassFullname[0].FullName);

んな無茶な。
ホントにそれで問題ないですか?
DLLに何かパブリックなクラスを追加したら破綻しますよ。

絶対にそういうことしないなら問題は出ないでしょうけど、
後々のことを考えると止めといた方がいいです。

せめてクラス名も指定する形にしましょう。

引用返信 編集キー/
■44498 / inTopicNo.8)  Re[6]: DLLの参照
□投稿者/ なちゃ (342回)-(2009/12/10(Thu) 11:07:47)
あ、でもプラグインか…
呼び出し側でDLL名指定してますけど、プラグインなのにそういうやり方で問題ないですか?
あるいはDLL名は固定で、その名前で置かれたものを使うイメージですかね?

まあ確実にルールを守るならいいと言えばいいんですけど、
やっぱりあんまりおすすめは出来ないです。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -