装饰器-流畅配置的等效XML配置

时间:2018-11-21 11:37:09

标签: c# xml configuration inversion-of-control castle-windsor

我有一个接口(boxes = cat(1, m.Centroid); imshow(pic) hold on plot(boxes(:,1),boxes(:,2), 'b*') hold off )和该接口的两个实现(ICommonInterfaceWrapperImplementation)。

一个实现利用了另一个实现...即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();
        }
    }

如何使用XML配置执行相同的操作?

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

我已阅读以下内容,但看不到Fluent的等效XML配置:

  1. Using XML configuration
  2. Registering components in XML
  3. How do I configure a decorator with Castle Windsor?

0 个答案:

没有答案