Autofac و Automapper - ملفات التعريف مسجلة ولكن لم يتم حلها

1

لدي تطبيق ASP.NET Core يستخدم Autofac لحقن Automapper.

أولاً ، أحاول تسجيل ملفات تعريف Automapper من Assembly:

builder.RegisterAssemblyTypes(assembly)
    .AssignableTo<Profile>()
    .OnActivated(e => System.Diagnostics.Debug.WriteLine(e.Instance.GetType()))
    .AutoActivate();

لقد أدخلت بعض سجلات التصحيح للتحقق مما إذا كانت ملفات التعريف الخاصة بي مسجلة. ويعمل ، أرى ملفات التعريف الخاصة بي في نافذة التصحيح.

من أن أسجل Automapper وأحاول حل الملفات الشخصية المسجلة مسبقًا:

builder.Register(ctx => new MapperConfiguration(cfg =>
    {
        var resolvedProfiles = ctx.Resolve<IEnumerable<Profile>>(); // Length is 0
        foreach(var resolvedProfile in resolvedProfiles)
        {
            cfg.AddProfile(resolvedProfile);
        }
    }).CreateMapper())
    .SingleInstance();

لا يعمل للأسف. لا يحل Autofac أيًا من الملفات الشخصية المسجلة سابقًا. لماذا وكيف يمكنني إصلاحه؟

1 إجابة

2
افضل جواب

ما عليك سوى إضافة النوع إلى التسجيل الخاص بك (عبر .As<Profile>() ):

builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
                .AssignableTo<Profile>()
                .As<Profile>()
                .OnActivated(e => System.Diagnostics.Debug.WriteLine(e.Instance.GetType()))
                .AutoActivate();
:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام