1

依存性注入フレームワーク (Autofac) から依存関係を取得するコンストラクターがあります。問題は、これらの依存関係を取得する以外に、コンストラクターで他に何もできないことです。これらの依存関係の割り当て以外のステートメントをコンストラクター内に記述すると、次のエラーが発生します。

No parameter less constructor is defined for this object

これを機能させるには、以下に示す読み取り専用文字列の割り当てにコメントする必要があります:-

public RelationshipController(ICustomerService customerService,)
{
   this.customerService = customerService;
   //someReadonlyString = "abcd";
}

何が起こっているのか誰か教えてくれませんか?

4

2 に答える 2

1

要求されたサービス (この場合はICustomerService) がコンテナー内に見つからない場合、Autofac はデフォルト (パラメーターなし) コンストラクターの検索に進みます。明らかにデフォルトのコンストラクターがないため、Autofac は例外で救済されます。

ここでの本当のエラーは、インターフェイスの登録コードにあると思いICustomerServiceます。

于 2012-07-09T16:55:34.567 に答える
0

おそらくASP.NETMVCを使用していることを意味するRelationshipControllerが表示されます。AutofacをMVCに正しく登録しなかった可能性があります。その場合、MVCはAufofacを使用せず、デフォルトのコンストラクターでのみ機能します。

于 2012-07-24T19:34:40.697 に答える