- PR -

オブジェクト(ユーザー定義クラス)のやり取りの仕方(C#)

投稿者投稿内容
yuta
会議室デビュー日: 2005/11/16
投稿数: 13
お住まい・勤務地: 愛知県→静岡県(転勤)
投稿日時: 2006-01-13 23:01
いつも参考にさせて頂いています、yutaです。

現在、下図のようにリモートオブジェクト(クラスライブラリ)を介して
WebサーバーとWindowsサービスの間でデータのやり取りを行っています。

 Windowsサービス ← リモートオブジェクト ← Webサーバー
          →            →

ArrayList型やデータ型のやりとりは問題なく行えますが、ユーザー定義
クラスのオブジェクトのやり取りがどうしても上手くいきません。
真っ先に思いついたのが、
 【セットする側(サービス→リモート)】
   ユーザー定義クラスのオブジェクトをobject型として代入
 【ゲットする側(リモート→サーバー)】
   代入されたobject型をユーザー定義クラスでキャスト
なのですがコンパイルは通るものの、いざ実行すると
 『指定されたキャストは有効ではありません。』
と、ゲットした時にエラーで弾かれてしまいます。(ユーザー定義クラスはリモートで定義)

その他、ここの過去ログや
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_007/cs2_007_04.html
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_007/cs2_007_05.html
等のサイトの記事を参考にしてみましたが、どうしても解決に至りませんでした。

何卒よろしくお願いします。
[開発環境] C#+ASP.NET(.NET2003)

lalupin4
大ベテラン
会議室デビュー日: 2004/07/26
投稿数: 163
投稿日時: 2006-01-14 00:34
 ISerializableとか要るのかな…。いや、わからんけど。
lalupin4
大ベテラン
会議室デビュー日: 2004/07/26
投稿数: 163
投稿日時: 2006-01-14 00:42
 なんにせよインターフェイスなり型なりの情報をそのユーザー定義クラスが持たなきゃならんのですよ、きっと。

あとは詳しい人が懇切丁寧に教えてくれるはずです↓。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2006-01-14 02:36
こんばんは。

多分、ユーザー定義クラスに
・Serializable属性をつけて、値渡しで越えられるオブジェクトを作るか、
・MarshalByRefObjectから派生させて、参照渡しで越えられるオブジェクトを作るか
のどちらかだとおもいます。
#他にもやり方があるようですが…

あとは詳しい人が懇切丁寧に教えてくれるはずです↓。 (~_~;)
清華
ベテラン
会議室デビュー日: 2005/12/21
投稿数: 50
投稿日時: 2006-01-14 07:38
Marshal使って構造体をbyte[]にして送るとか……だめですか?(苦笑

あとは詳しい方が(ry ↓
_________________
9uiet Design - http://quietdesign.rental.allinoneserver.net/
デザインにこだわったソフトの配布とプログラミングTipsの公開(予定)をしています。
9uiet Blog - http://seiga.blog44.fc2.com/
笑ったことやプログラミングのことなど書
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-01-14 10:07
いや、まず、どこからどこが通らないのか、はっきりさせないとダメでしょう。

> Windowsサービス <-> リモートオブジェクト <-> Webサーバー
リモートオブジェクトって何?リモート(ローカルでないPC)に"ある"オブジェクト?それとも、.NET リモーティングでやりとりできるように"したい"オブジェクト?

また、Web サーバって、Web サービス?それとも Web アプリケーション?それとも、TCP か何かの口を開けて待っている(サービス|デーモン)アプリケーション?


もちっと、一般的な言葉を使って、何をしているのかがわかるように書き直したら、詳しい方が(以下略)↓
________________________________
□ Posted by Jitta on 2006/01/14
_________________
lalupin4
大ベテラン
会議室デビュー日: 2004/07/26
投稿数: 163
投稿日時: 2006-01-14 11:06
 なにこのChain of Responsibility。

Gamma, Eric = Helm, Richard = Johnson, Ralph = Vlissides, John
「CHAIN OF RESPONSIBILITY」
『オブジェクト指向による再利用のためのデザインパターン』改訂版
1999年 ソフトバンクパブリッシング pp237-248


 察するにTdnr_Symさんの線が濃厚ですかね。
Jittaさんのおっしゃるとおりもう一歩詳しい状況を書いてくれると
あとは詳しい人が懇切丁寧に教えてくれるはずです↓。
清華
ベテラン
会議室デビュー日: 2005/12/21
投稿数: 50
投稿日時: 2006-01-14 11:12
なんにせよyutaさんが帰ってくるまで何もいえないのでyutaさんが帰ってきたらあとは詳しい方が(ry↓
_________________
9uiet Design - http://quietdesign.rental.allinoneserver.net/
デザインにこだわったソフトの配布とプログラミングTipsの公開(予定)をしています。
9uiet Blog - http://seiga.blog44.fc2.com/
笑ったことやプログラミングのことなど書

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