- PR -

別クラス間でオブジェクト参照を渡す方法

1
投稿者投稿内容
Ojama
会議室デビュー日: 2007/08/25
投稿数: 2
投稿日時: 2007-08-25 18:58
あるアプリケーションのアドインを開発において、アドインとのインターフェースを各クラスに実装(Implements IAction)しています。各クラスは、アプリケーションから呼ばれたときにインスタンス化されます。

Public class AA
Implements IAction

End Class

Public class BB
Implements IAction

End Class

クラスAAでDB接続を行い、そのセッションを共有して、Class BBでDB検索を行いたいのですが、その方法が判りません。
そもそも可能なのかどうかも判りません。何か手がかりでも頂けると助かります。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2007-08-25 21:00
BBがAAの接続リソースの参照を持っていれば可能なのはわかるかな?
ん?セッション?ASP.NETかい?
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2007-08-25 22:43
アドインということなので
App.exe、AA.dll、BB.dll
という前提で書きます。
#ポイントはAAとBBが独立した別物だということ。

単純にコネクションを共有するためには、既出のように参照を知りえることが出来ればよいですが
ポイントは、
アドインであること、コネクションであること、共有の意味と目的
になるでしょう。
アドインであるということは、その機能が独立して単独で動作し、依存はアプリケーションのみがベストです。
今回のように拡張の拡張という場面もあるでしょう。その場合はアドイン間のI/Fを作ることになるでしょう。
ただ、結局AAとBBをまとめてひとつにするというオチになる可能性のほうが多いかもしれません。
それよりコネクションなので、何のために共有するのかで適切な方法やその必要性が変わってきます。
詳細な仕様がわかりませんが、アドイン間で連携するのは不適切だと思います。
やるならアプリケーションがコネクションインスタンスを管理し、それぞれのアドインがそれを利用するという方法でしょうか。
#理由はコネクションがトランザクションなどOpenからCloseまでそれ自身に意味があるからです。

いずれにしろ共有の目的がポイントです。
結果として、アドインとしてのあるべき姿の崩壊、保守性の低下を招くと本末転倒です。


[ メッセージ編集済み 編集者: まどか 編集日時 2007-08-25 22:44 ]

[ メッセージ編集済み 編集者: まどか 編集日時 2007-08-25 22:48 ]
Ojama
会議室デビュー日: 2007/08/25
投稿数: 2
投稿日時: 2007-08-26 08:14
まどかさん、ぶさいくろうさん
コメントありがとうございます。

まどかさんの仰るように、本来アプリケーションを補完する目的のアドインなので、アドイン間での連携と言うのは、良くないのかも知れませんね。
別な方法を考えることにします。ありがとうございました。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-08-27 09:21
BBが共有するAAというのはどうやって判断するんでしょうか。
同じアプリケーションドメイン内のAAということですか。

それなら静的(VBではShared)変数に入れておけばいいんじゃないでしょうか。
1

スキルアップ/キャリアアップ(JOB@IT)