RPA開発ベンダーが開発していたUiPathロボットのバージョンアップ作業(v18.1⇒v19.10)をしていたところ、hoge.IsNullOrEmptyが認識できないというエラーが多発。。
何故このようなエラーが発生したか
そもそも、.netの記述としてString.IsNullOrEmpty(hoge)が正しいはずなのに、何でこんな記述が出来たのか…?また、バージョンアップ後では出来なくなったのか?
結論から言うと、UiPath(v18.1)時点ではStudioへStringの拡張メソッドとしてIsNullOrEmptyメソッドを提供しているようだった。また、v18.2⇒v18.3でUiPathのCore部分に大規模な改修が入っており、恐らくそのタイミングでinternalメソッドへと変更されているようでした。(不具合だった?)
以下はUiPath Studioを逆コンパイルしたソースの中身。
対応方法
.net公式としてString.IsNullOrEmpty(hoge)が正しい為、v18.2以前でhoge.IsNullOrEmptyを利用している箇所は一律修正が必要です。また、同様にhoge.IsNullOrWhiteSpaceでエラーが発生する可能性もあるが、こちらも**String.IsNullOrWhiteSpace(hoge)**へ修正掛ければOK!