4

Ruby1.8を使用しています。WIN32OLEモジュールの使用-

1)OLEオブジェクトインスタンスのクラス名を確認するにはどうすればよいですか?2)オブジェクトインスタンスが特定のメソッドをサポートしているかどうかを確認するにはどうすればよいですか?

Outlook自動化スクリプトで、21日より古い「削除済みアイテム」フォルダー内のアイテムを削除しようとしています。メールアイテムの場合、ReceivedTimeプロパティを使用したいのですが、そのためには、アイテムが実際にMailItemインスタンスであるかどうかを確認する必要があります。

第二に、私が思いついた最高のものは(本当に遅い)です:

def MethodExists(obj, methodName)
  obj.ole_methods.each{|method|
    if (method.name == methodName)
      return true
    end
  }
  return false
end
4

2 に答える 2

-3
  1. obj.class

  2. if obj.respond_to?(methodName)
        #do your work
    end
    
于 2009-02-27T15:59:28.757 に答える