0

私は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(); 

答えて

0

UserRepositoryとしての私のグローバルASCXコードを登録して起動し、そのため、Unityはインスタンスを作成できません

+0

UserRepositoryコンストラクタを追加しましたが、同じエラーが発生していませんでした。他の解決策をお願いします –