- - PR -
クラスライブラリを別プロセスで動作させる。
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-04-22 14:20
C#において以下のような4つのプロジェクト構成で開発しています。
1.メニュー Windows アプリケーション 2.画面A クラス ライブラリ 3.画面B クラス ライブラリ 4.処理C クラス ライブラリ メニュー画面は画面A、画面B、処理Cのクラスを呼びます。 画面A、画面Bは画面(フォーム)があるプロジェクトです。 処理Cは画面(フォーム)がないプロジェクトです。 上記の画面A、画面B、処理Cのクラスの実行をメニューに対して、 別々のプロセス(アウトプロセス)で実行させたいと考えています。 可能でしょうか? 別々のプロセスで動作させたい理由は 1.画面A、画面B、処理Cを別々に動作させるため、1つの 処理が異常終了しても他の影響しないため。 2.メニューだけを終了させたいため。 今はメニューを終了させると画面A、画面B、処理Cも終了して しまう。 全てをWindows アプリケーションで作成する方法もあるのですが 画面同士の連携を考えて、メニュー以外はクラスライブラリの 構成にしたいと思います。 何かいい方法はないでしょうか? VB6のActiveXDLLのようなアウトプロセスサーバって作れない のでしょうか? よろしくお願いします。 | ||||||||
|
投稿日時: 2004-04-23 00:50
こんにちは。
求めている物とはだいぶ違うかもしれませんが、 「1.メニュー Windows アプリケーション」(EXE)を パラメータつきで呼び出すように変更すればいいのではないでしょうか。 もしくは、DLLのものをすべてをEXEで作ってしまえば、 条件はクリアできるようにも思えます。 | ||||||||
|
投稿日時: 2004-04-23 08:21
マネージドアセンブリなら、実行形式でもDLLのように参照できます。 | ||||||||
|
投稿日時: 2004-04-23 10:25
マネージドアセンブリについて調べてみたのですが、イマイチ、実行形式でも DLLのように参照するやり方が分かりませんでした。 具体的な方法か参考になるHPがあれば教えて頂けないでしょうか? | ||||||||
|
投稿日時: 2004-04-23 10:49
こっちのスレッドを参考にして、動的にバインドします。
すみません、何か勘違いして、VS.NETのソリューションエクスプローラから参照できる、という意味でコメントしてましたが、それは出来ませんでした・・・って、前にもそのようなことを書いたような [ メッセージ編集済み 編集者: Jitta 編集日時 2004-04-23 10:51 ] | ||||||||
|
投稿日時: 2004-04-23 11:39
C#で開発しているのですが、C#って動的にバインドできるのでしょうか? C#で動的にバインドできなかったらEXEをDLLのように呼び出すのは無理 なのでしょうか? | ||||||||
|
投稿日時: 2004-04-23 11:46
Jittaさんが提示している方法だと、同じアプリケーションドメイン内で
画面を動作させることになりますよね。 この方法では元質問者の方の 「1.画面A、画面B、処理Cを別々に動作させるため、1つの 処理が異常終了しても他の影響しないため。 」 この要件が満たせないよーな。 #2のメニューだけ終了も無理かな? 画面同士の連携というのが何をさせたいかにもよるのですが、 すべての画面を実行形式で作成し、Process.Startを使って 各画面を起動するのが一番要件に合うような。 画面間でデータの受け渡しがある場合はDBとかファイル経由で やるようになるかなぁ。 | ||||||||
|
投稿日時: 2004-04-23 12:26
でもそれをするとオブジェクトプログラミングって 感じがなく、少し抵抗があるんです |