- - PR -
DLLをロードしているアプリケーションの実行環境
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-07-16 19:00
こんにちは。ご存知の方がいらっしゃいましたら、お教えください。
DLLを作成しました。このDLLは、Windowsアプリケーション、Webサービスアプリケーション、コンソールアプリケーションなど、色々なアプリケーションが参照使用します。 このDLLから、今自分を使っているアプリケーションがどの種類のアプリケーションなのかを知ることは可能でしょうか? Webサービスアプリケーションなのかどうかを判断できるだけでも助かります。 よろしくお願いします。 | ||||
|
投稿日時: 2008-07-16 20:24
開発環境は明記して頂かないと・・・
なんのDLLなのか、さっぱりわかりません。 .NETの場合と想定しますが・・・ どの種類か?ってWinとかWebとかDOSとかって判断ですか??? 出来ない事はないと思いますが、すごく骨が折れるのではないかと思います。 (やってみた事ないので、想定上の話ですが) で、簡単に済ませられる別案となりますが・・・ System.Diagnostics.Process.GetCurrentProcess().MainModule で、ProcessModuleのインスタンスが取得できます。 そしてModuleNameとかFileNameのプロパティを見れば・・・。 AAA.exeから呼ばれたとか、BBB.exeから呼ばれたとか判りますね。 Webアプリ(ASP.NET)ならば、呼び出し元は「aspnet_wp.exe」かなぁ? とにかく、呼び出し元モジュールの名前で判断するのが楽だと思いますよ。 | ||||
|
投稿日時: 2008-07-17 04:34
何がしたいかだけれど、僕だったら設定ファイルか Attribute にどんな形式で実行しているかを書くようにするかなー。
main あたりにカスタムアトリビュートっていうのがきれいな気がする。 _________________ かるあ のメモ と スニペット | ||||
|
投稿日時: 2008-07-17 10:03
くまっちさん、かるあさん、回答ありがとうございます。
今回はくまっちさんの作戦で行こうと思います。 かるあさんの方式だと「DLLを使うアプリ側にAttributeを記述させないといけない」という理由で、今回のこちらでやりたいことからするとNGです。 でも確かにきれいですよね。全部自分でやるような場合だったら、私もこうしたと思います。 本件はこれでクローズさせて頂きます。改めて、ありがとうございました。 | ||||
|
投稿日時: 2008-07-17 21:51
でも、読み込むアプリが増えたり、名称が変わったりすると、DLL 本体に手を入れないといけませんよ? (そして、「サイド バイ サイド実行」から行くと、本体ごと配布しなければならない) |
1