- - PR -
exeからDLLの呼び出し
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-06-05 11:06
exeに取り込むのは起動時に表示されるフォームの部分だけでいいんじゃないですか。
試したいなら、仮のアセンブリを大量に作って、それを参照設定して起動してみたらどうですか。 それで遅くなるなら参照設定が問題ということですよね。 よねKENさんも書いてますが、アセンブリはその中に定義されたクラスが必要になった時に初めてロードされます。 だから、参照設定していようが必要な時に動的にロードしようが同じです。 http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_index/index.html ここの第3回辺りまで読んでみてください。 ------
そうですね。自分の目で見て納得したいですよね。 逆転の発想です。参照設定を減らすのが面倒なら、逆に増やして影響を見るんです。 上に挙げた方法を試してみてください。 [ メッセージ編集済み 編集者: 一郎 編集日時 2007-06-05 11:09 ] | ||||||||||||
|
投稿日時: 2007-06-05 11:43
ならないです。 アセンブリ ローダーは必要になった時に初めてオンデマンドでロードします。そのため初回起動への影響はほとんどありません。むしろそのための遅延ロードです。 影響があるパターンとしては、これからロードしようとしている型 (クラス) に別の型を持つ static なメンバが多く含まれ、副次的に他のアセンブリもロードされる場合になると思いますが、そのような実装には (一般的ではないため狙っていない限り) ならないでしょう。なっているとしたら、アセンブリの分け方がおかしいと思います。 その場合でも、それほど大した処理時間にはならないハズです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-06-05 12:36
「参照設定をしない」というのをどういう意味で使っているのか図りかねますが、参照しないとコンパイルできなくなりますよ。今回の例で言うと、その DLL 中の型をその EXE をコンパイルするときにコンパイラに教えないといけないので。
言い方を変えると「参照設定」とはその程度の事であり、単にコンパイラにアセンブリの情報を与えているだけです。勿論、コンパイル対象には参照しているアセンブリの情報が埋め込まれますが。 なので、検証もなにも「参照しない」という選択肢はない(できない)と思います。 他の方も仰っているように、デフォルトで必要時に動的ロード(というかそれしかできない)になっているので問題ないと思いますが、モジュール単位で一気にロードされるので、それを嫌うならば、マルチモジュールアセンブリにすればロードするモジュールを分割するという手段を取れます。試してみてはいかがでしょうか。 _________________ 囚人のジレンマな日々 | ||||||||||||
|
投稿日時: 2007-06-05 12:48
msoです。
過去ログを探しましたか?? http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=27443&forum=7 |