2013-07-13 7 views
5

で最も貪欲なコンストラクタを探すために、Autofacを使用しようとしています。 dllを参照してください。最も貪欲なコンストラクタを見つけられないオートファック

これは見つからず、パラメータのないコンストラクタが1つしか見つかりません。

これらは2 ctorsです:

public SimpleAuthenticationController() { .. } 

public SimpleAuthenticationController(IAuthenticationCallbackProvider callbackProvider) : this() 

は今、これは私がautofacでものを登録する方法である:

var builder = new ContainerBuilder(); 

builder.RegisterType<SampleMvcAutoAuthenticationCallbackProvider>().As<IAuthenticationCallbackProvider>(); 
builder.RegisterControllers(typeof(MvcApplication).Assembly); 
builder.RegisterControllers(typeof(SimpleAuthenticationController).Assembly); 

var container = builder.Build(); 
DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); 

複雑すぎる何もありません。

しかし、これは私が考えることができる奇妙なことです。

  1. typeof(MvcApplication)私は手動AddReferences介して添加-seperate- DLLに見出されるglobal.asax
  2. typeof(MvcApplication)でこのコードはに存在する同一のプロジェクトです。

誰かが間違ったことを見てください。

+0

パラメータのないコンストラクタを一時的にコメントアウトするとどうなりますか?他のパラメータを使用して正常に解決しますか? –

+0

私は確認します。ホールドしてください。 –

+0

パラメータ無しのctorでコメントアウトされています。 –

答えて

2

問題は私の欲張りが呼び出されたことです。でも、欲張りな人を見れば、私は: this()をやっていることに気づくでしょう。

非常に不慣れな初心者のエラーです。

だから、それは貪欲なコールを呼んでいましたが、それがスコープに入る前に、それは他のパラメータのないctorにバブルする必要があります。

そして、私はそれが欲張りをスキップしていると思っていました。

ユーザーとキーボードの間のエラーです。

関連する問題