- - PR -
プロパティ、メッソドの名前による解決
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-07-18 09:07
C#でWindowsアプリケーションを勉強しながら作っています。
Accessのオブジェクトを生成して、いろいろ操作をしようと思っていますが、 ”Microsoft Access XX.X Object Library"のバージョンによって 使えるプロパティがあったり、無かったり、メソッドも引数の使い方が 違ったりしています。 これをプロパティー名、メソッド名で解決することは、できないものなのでしょうか? (メソッドは無理かな?) try,catchでも逃げれそうな気もしますが、COMコンポーネントのバージョンの違いにより この手の問題は発生しそうなので、皆さんはどのように解決されているか教えて下さい。 | ||||
|
投稿日時: 2005-07-18 10:52
直接の回答ではありません。 バージョン毎にクラスを作成して切り替えるといいかもしれません。 使えないメソッドも代替手段をすっきりコーディングすることができます。 切り替え方は条件分岐してもいいし、それが気持ち悪いならFactoryMethodにしてもいいかと思います。 _________________ たつごろー http://www.codeseek.net [ メッセージ編集済み 編集者: たつごろー 編集日時 2005-07-18 11:53 ] | ||||
|
投稿日時: 2005-07-18 16:35
遅延バインドすればできます。 遅延バインドについては過去にも話題になったことがあるので、検索してみてください。 けど、C# だと長ったらしいコードになるので、あまりお勧めではないです。 VB.NET なら、タイプライブラリの取り込みを行わなければ、勝手に遅延バインドを使ってくれたはずです。 | ||||
|
投稿日時: 2005-07-20 04:18
たつごろー様、渋木宏明(ひどり)様、ありがとう御座いました。
無事解決できました。 渋木宏明(ひどり)さんから教えて頂きました「遅延バインディング」で行いました。 「遅延バインディング」、「InvokeMember」でgoogleしたら、MSのサイトが 見つかりました。 実際に参考にしたURLは以下です。 http://support.microsoft.com/default.aspx?scid=kb;ja;302902 ここに、困っていたこと、やりたいこと、解決コードがすべて載っていました。 皆様、ありがとう御座いました。 |
1