2016-08-01 29 views
0

私は親クラスの動物クラスと2つの子クラスを持っています。私は依存性注入のためにAutofacを使用しています。私は設定ファイルで指定された条件に基づいてDogとCatを登録したい。条件付きでAutofacの登録タイプ

モジュールクラスに次のコードを追加します。

If Dog mentioned in Config file then builder.RegisterType<Dog>().As<Animal>().PropertiesAutowired().SingleInstance(); If cat mentioned in Config file then builder.RegisterType<Cat>().As<Animal>().PropertiesAutowired().SingleInstance();

同じのために提案してください。このよう

+0

はあなたがそれを書いたとして、ロジックと何が問題なのですか? – qujck

+0

これはこれを行うための書き込み方法ですか? –

答えて

0

if (ConfigurationManager.AppSettings["Animal"] == "Dog") 
    builder.RegisterType<Dog>().As<Animal>().PropertiesAutowired().SingleInstance(); 

if (ConfigurationManager.AppSettings["Animal"] == "Cat") 
    builder.RegisterType<Cat>().As<Animal>().PropertiesAutowired().SingleInstance(); 
+0

実行時に型を解決できますか? yesthenの場合、これはどのように行うのですか? –

+0

@RashiGarg:私はあなたの質問を理解していません。あなたは言い換えることができますか? – Steven

+0

次のコードを使って動物に対するDogクラスを登録したとします。 'builder.RegisterType ().As ().PropertiesAutowired()。SingleInstance();しかし、実行時にCatを登録したい場合は、アプリケーションの起動時にDogがアプリケーションの実行まで登録されるため、アプリケーションを停止せずにこれをどうやって行うのでしょうか? –

関連する問題