0

私のモデルとDataContextは、私のソリューションのWebMVCプロジェクトとは別のプロジェクトにあります。AppHost Configureメソッド内にDataContextを登録しよnullうとすると、サービスが使用するリポジトリでDataContextを使用しようとしたときにDataContextが保持されます。

これはにありConfigureます:

container.Register<WarrantyContext>(c => new WarrantyContext());

次に、リポジトリで依存関係を使用しようとすると、次のようになります。

public WarrantyContext _db { get; set; }

まだnullです。別のプロジェクトからの依存関係を登録しようとするときに、あなたがしなければならないことはありますか?

4

1 に答える 1

1

調べるべきいくつかのこと...

  • autofacを使用している場合は、ここにリストされているすべての手順に従っていることを確認してください

  • また、WarrantyContextをプロパティとして持つRepositoryクラスがあるようです。ここに、 「上記のメソッドを使用する場合、登録されたタイプのプロパティとコンストラクターは自動配線されません(つまり、プロパティとコンストラクターは挿入されません)という注記があります。そのように手動で行う必要があります。 "。したがって、(以下のように)サービスに注入されているクラスリポジトリ(WarrantyContextプロパティを持つ)がある場合、手動で登録しない限り、WarrantyContextはnullになります。

    //To inject WarrantyContext into a Repository that is injected to Service 
    container.Register<Repository>(c => new Repository() { _db = c.Resolve<WarrantyContext>() });
    
    
    public class Repository 
    {
        public WarrantyContext _db { get; set; }
    }
    
    
    public class AService : Service
    {
        public Repository repo { get; set; }
    
        public object Any(ARequest request)
        {
            //CODE
        }
    }
    
于 2013-03-26T17:18:04.300 に答える