トップ  >  パソコン豆知識  >  遅延バインディングの悲劇(VB.NET)

遅延バインディングの悲劇(VB.NET)

2011年07月04日

プログラム的には間違っていないし、動作確認時(テスト/デバッグ)にも正常動作したプログラムが実行環境によっては時々、遅延バインディングのエラーになる事があります。

例えば、例外時(エラー)には次のようなトレースが表示されます。
Microsoft.VisualBasic.CompilerServices.LateBinding.InternalLateCall(Object o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack, Boolean IgnoreReturn)
Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateCall(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack, Boolean IgnoreReturn)

遅延バインディングとはプログラミング(ソースコード)では型指定を曖昧(Object)にして、実行時に型を確定させる事です。遅延バインディングのメリットはプログラミング(ソースコード)の環境と実行環境で使用するオブジェクトの型やバージョンが違う時に有効です。

この例外(エラー)はIE(特にIE9)のCOMオブジェクトを操作する時に発生する事があります。もしかするとOFFICE(EXCEL等)のCOMオブジェクト操作でも発生するかも知れません。

この例外(エラー)はプログラミング(ソースコード)に指定されているメソッドやプロパティが、実際に実行するCOMオブジェクトに存在しない時などに起こります。でも、実際に実行するCOMオブジェクトには指定したメソッドやプロパティが存在する事は動作確認時(テスト/デバッグ)に確認済みです。

つまり、遅延バインディングは不安定だと言う事です。

さて、解決方法はズバリ!!
遅延バインディングを使用しないでプログラミング(ソースコード)時から正式な型指定をする事!!だと思います。

遅延バインディングはオブジェクト指向とても便利な機能なので、VB.NETとしても安定させて欲しいものです。

スポンサーサイト

Firefoxを最新の情報に更新(C#/VB.NET) | トップページへ戻る | ヨーキーがノッてます

このページのトップに戻る

コメント

名前
題名
メールアドレス
WEBサイト
 
コメント
パスワード
  管理者にだけ表示を許可する

このページのトップに戻る

トラックバック

このページのトップに戻る