ravithejag Ответов: 0

Проблема Autofac при разрешении именованного/типизированного параметра


Я хочу передать дополнительный параметр при разрешении зависимостей на основе типа.

пожалуйста, ознакомьтесь с изменениями моего кода

private readonly Func<Type,string,IManager> _strategyFactory;


вызов шаблона stratergy для разрешения зависимостей на основе типа.
return _strategyFactory( тип );
return _strategyFactory( Type );


Изменения зависимостей Autofac
builder.Register<Func<Type, string, IManager>>( c =>
            {
                var cc = c.Resolve<IComponentContext>();
                return ( Type, message ) =>
                {
                    switch( Type )
                    {
                        case Type.A:
                            return cc.Resolve<AManager>(new NamedParameter( "message", "abc"));
                        case Type.B:
                            return cc.Resolve<BStatusManager>( new NamedParameter( "message", "xyz" ) );
                        default:
                            throw new ArgumentException();
                    }
                };
            } );



Я столкнулся с проблемой при вызове разрешенного класса.Предположим, у нас есть метод в AManager/BManager, мне нужно получить значение сообщения в конструкторе.

Есть ли другой способ повторно получить сообщение в классе

Что я уже пробовал:

Концепции регистрации — документация Autofac 4.0[^]

0 Ответов