IDbContextインターフェイスが別のアセンブリおよび別のアセンブリのサービススタックにあり、ベースサービスクラスにはIDbContextのプロパティがあり、他のサービスではそのプロパティが使用されます。プロパティがAutofac経由で注入されない
単純にするには基本サービスクラスを省略します。このシナリオでも機能しません。ここ がIDbContextです:
public interface IDbContext
{
}
それから私はIDbContextを実装DBContextクラスがあります。別のアセンブリで 我々はIDContextプロパティを持っている。このクラスを持っている:
public class StudyFieldService : IStudyFieldService{
private readonly IDbSet<StudyField> _studyFields;
public IDbContext DbContext { get; set; }
public StudyFieldService(IDbContext db)
{
_studyFields = DbContext.Set<StudyField>();
}
}
は、それから私は、インターフェイスにAutofacレジストリクラスはどのマップのクラスを持っているし、レジストリクラスは、これがどのメソッドの本体です別のアセンブリ にもありますタイプをマップ:私はコンストラクタのParam AutofacでIDbContextを入れた場合
var builder = new ContainerBuilder();
builder.RegisterType<SalaryDbContext>().As<IDbContext>().InstancePerLifetimeScope();
builder.RegisterType<StudyFieldService>().As<IStudyFieldService>().PropertiesAutowired();
は今、それを解決しますが、私はそれが自動的にプロパティとして注入することにしたいです。
と変数名の競合があると思いますが、例外を得るのですか?または、プロパティ 'null'の値ですか? –
プロパティの値はnullです –
私はそれをテストしたし、正しく動作します。あなたは何かを提供するのを忘れましたか? – MaKCbIMKo