1

コンパイル時に

using MyNamespace;

これは今まで機能していましたが、最近要件が変更され、ユーザーが選択したアプリケーションの種類に基づいて実行時に処理する必要があります。

では、IWizard で C# コードを使用して "Using" 名前空間ステートメントを追加するにはどうすればよいですか?

実行時に参照を追加する方法を知っています

 var appProject = project.Object as VSProject;
 appProject.References.Add(Mydll);

私が欲しいのは、実行時に

using System.IO;
using MyNamespace-> should come at runtime based on the application selected

ありがとう

4

1 に答える 1

0

同様の問題が発生しました。実行時に名前空間を正確に変更するわけではありませんが、実行時に別の名前空間からオブジェクトなどを取得するだけです。名前空間を変更したい場合は、名前とインターフェースが同じでも実装が異なるクラスがある可能性があります。それ以外の場合は、コードを変更する必要があります。使用するすべてのクラスのインターフェイスだけを含む新しいライブラリと名前空間を作成する場合に必要なこと。次に、異なる名前空間のクラスがこれらのインターフェースを継承するようにして、特定の実装ではなくインターフェースのみを使用するようにクラスをコーディングできるようにします。次に、実行時に使用する実装を選択するには、「依存性注入」を使用します 構成ファイルを介して挿入する正しい実装を選択するか、アプリケーションの他の部分に注入を構成させます。依存関係の注入を始めるのは少し難しいかもしれませんが、一度理解すれば、あなたの人生はずっと楽になります。Ninject は、使い始めるのに適した簡単な依存性注入フレームワークです。

于 2012-07-31T20:44:57.023 に答える