これが設計時に行われていることを考えると、アクティビティ自体ではなく、デザイナー内でこのすべてのロジックを提供することを強くお勧めします。
設計時のロジックをアクティビティに含めないでください。アクティビティは、どのデザイナーからも独立して実行できる必要があります。このように考えてみてください...
座って、アクティビティとそのデザイナーを使用してワークフローを設計します。完了したら、ワークフローを別の場所のサーバーにインストール/xcopyします。サーバーがアクティビティを実行する前にロードすると、設計ロジックが CacheMetadata で実行されるとどうなりますか? 設計時に実行されていないことを判断するヒューリスティックを使用してスキップされるか、そのファイルが見つからない場合にこのコードをスキップする追加のロジックを含めます。いずれにせよ、サーバーがこの設計時のコードを実行するのはなぜでしょうか? 答えは、それを実行すべきではないということです。そのコードは設計者のものです。
これが、フレームワークを見ると、アクティビティとそのデザイナーが異なるアセンブリに存在することがわかる理由です。コードも同じようにする必要があります。デザイン中心のコードは、アクティビティとは別のアセンブリで配信する必要があります。これにより、両方をデザイナーに配信し、アクティビティ アセンブリのみをアプリケーション サーバーに配信できます。