私はvisual studio 2015 version.Iを使用しています。私は、依存関係注入モデルを使用して、最初のアプローチでコードのテーブルからユーザーのリストを取得しようとしました。私はコンテナを登録する際に間違いを犯したと思います。私はこのコードを実行しようとすると、 "このオブジェクト用に定義されたパラメータがないコンストラクタはありません"というエラーが表示されます。googleと解決策が多数見つかりましたが、Microsoft.practice.unityを使用するunity5のような古いバージョンを使用しています。私は統一5.1.2バージョンを使用しています。私のやり方が間違っている場合は、これらのコードを単一性で動作させるように変更してください。前もって感謝します。mvc5でUnityが動作しないための依存性注入
マイモデルコード
public class UserInfo
{
[Key]
public int UserID { get; set; }
[Required(ErrorMessage = "Please Enter The FirstName")]
public string FirstName { get; set; }
[EmailAddress(ErrorMessage = "Invalid Email Address")]
[Required(ErrorMessage = "Please Enter The Email")]
public string Email { get; set; }
}
マイインタフェースコード
public interface IUserInformation
{
IEnumerable<UserInfo> GetAll();
UserInfo Get(int id);
UserInfo Add(UserInfo item);
bool Update(UserInfo item);
bool Delete(int id);
}
マイリポジトリコード
public class UserRepository:IUserInformation
{
private ProdDBContext db = new ProdDBContext();
LogWriter obj1 = new LogWriter();
public IEnumerable<UserInfo> GetAll()
{
try
{
return db.User.ToList();
}
catch (Exception ex)
{
obj1.WriteToFile("Error in User Index repository " + ex.Message);
obj1.WriteToFile("Error in User Index repository " + DateTime.Now);
}
return db.User.ToList();
}
マイコントローラコード
public class UserInformationController : Controller
{
private ProdDBContext db = new ProdDBContext();
LogWriter obj1 = new LogWriter();
readonly IUserInformation IuserInf;
public UserInformationController(IUserInformation IuserInf)
{
this.IuserInf = IuserInf;
}
[CustomFilters]
[CustomAuthorize(Roles = "admin")]
public ActionResult Index()
{
try
{
var Userlist = IuserInf.GetAll();
return View(Userlist);
}
catch (Exception ex)
{
obj1.WriteToFile("Error in User Index page" + ex.Message);
obj1.WriteToFile("Error in User Index page" + DateTime.Now);
}
return View();
}
}
アプリで3210
私の設定ファイルは、デフォルトでは
public UserRepository() { }
パラメータなしのコンストラクタがプライベートでパラメータなしのコンストラクタに欠けている
public class UnityConfig
{
private static IUnityContainer BuildUnityContainer()
{
var container = new UnityContainer();
register all your components with the container here
container.RegisterType<IUserInformation, UserRepository>();
return container;
}
}
は最終的に私は
UnityConfig.BuildUnityContainer();
UserRepositoryコンストラクタを追加しましたが、同じエラーが発生していませんでした。他の解決策をお願いします –