Декоратор - эквивалентная конфигурация XML для плавной конфигурации - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть один интерфейс (ICommonInterface) и две реализации (WrapperImplementation, CoreImplementation) этого интерфейса.

Одна реализация использует другую реализацию ... то есть WrapperImplementation имеет в своем конструкторе параметр ICommonInterface, который, как ожидается, будет CoreImplementation

Примером того, как все это может быть собрано, является:

    public interface ICommonInterface
    {
        void DoSomething();
    }

    public class CoreImplementation: ICommonInterface
    {
        public CoreImplementation()
        {
        }

        public void DoSomething()
        {
            //some implementation
        }
    }

    public class WrapperImplementation : ICommonInterface
    {
        private readonly ICommonInterface _coreImplementation;

        public WrapperImplementation(ICommonInterface coreImplementation)
        {
            _coreImplementation = coreImplementation;
        }

        public void DoSomething()
        {
            _coreImplementation.DoSomething();
        }
    }

Использование свободного языкаподход ( раньше это прекрасно работало для наших целей ):

container.Register(
                    Component.For<ICommonInterface>().ImplementedBy<MyNameSpace.WrapperImplementation>().Named("WrapperImplementation").LifestyleSingleton(),
                    Component.For<ICommonInterface>().ImplementedBy<MyNameSpace.CoreImplementation>().Named("CoreImplementation"));

Как мне сделать то же самое с использованием конфигурации XML?

<component id="WrapperImplementation" service="MyNameSpace.ICommonInterface, MyNameSpace" type="MyNameSpace.WrapperImplementation, MyNameSpace" />
<component id="CoreImplementation" service="MyNameSpace.ICommonInterface, MyNameSpace" type="MyNameSpace.CoreImplementation, MyNameSpace" />

Я прочиталниже и я не вижу эквивалентной конфигурации XML для Fluent:

  1. Использование конфигурации XML
  2. Регистрация компонентов в XML
  3. Как настроить декоратор с помощью Castle Windsor?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...