在不使用容器的情况下从配置中统一拦截

可见鬃毛

嗨,我正在尝试使用统一拦截(我不想使用统一容器)。我能够配置运行时,但是不知道如何从config配置它。

我的代码:

public interface ICalculator
{
    int Add(int first, int second);

    int Multiply(int first, int second);
}

行为:

  internal class LogBehavior : IInterceptionBehavior 
    {
        public IMethodReturn Invoke(IMethodInvocation input, GetNextInterceptionBehaviorDelegate getNext)
        {
            // My Code
            IMethodReturn result = getNext()(input, getNext);
            return result;
        }

        public IEnumerable<Type> GetRequiredInterfaces()
        {
            return Type.EmptyTypes;
        }

        public bool WillExecute {
            get { return true; }
        }
    }

这就是我所说的

    public static void Main(string[] args)
    {

        var calculator = new Calculator();
        var calculatorProxy = Intercept.ThroughProxy<ICalculator>(calculator,
          new InterfaceInterceptor(), new[] { new LogBehavior() });
        Console.WriteLine(calculatorProxy.Add(2, 2));

        Console.ReadKey();
    }

这正在工作。我需要从配置文件中进行配置。请帮忙

BatteryBackupUnit

如果没有容器,则必须自己进行代理实例化。那是Intercept.ThroughProxy<>电话。如果您正在使用另一个容器,则可以扩展它以读取配置并相应地处理它。

但是,没有什么魔术可以让.net / unity读取配置文件并执行new Calculator()Calculator它将被配置文件中定义的拦截器代理和拦截。new不能扩展以处理该问题,因此总会有一些组件需要您提供的实例ICalculator,然后该实例将检查是否需要代理以及需要使用哪些拦截器...

当然,这是一个例外。如果使用编织(FodyPostSharp),则可以在不使用动态代理的情况下进行AOP。然后,您实际上可以做到new Calculator(),它将具有它的各个方面,而不仅仅是它的核心实现...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从配置中统一拦截而不使用容器

来自分类Dev

是否可以在不使用SSL的情况下通过HTTP调用统一引擎API?

来自分类Dev

在不使用__proto__的情况下配置[[Prototype]]链

来自分类Dev

在不使用GUI的情况下配置Firefox

来自分类Dev

模式匹配情况下的统一

来自分类Dev

在不使用CSS的height属性的情况下,根据右侧容器的高度调整左侧容器

来自分类Dev

ArrayFire中统一后端的使用

来自分类Dev

是否可以在不使用Arquillian容器管理和部署的情况下使用Arquillian Graphene?

来自分类Dev

如何在不使用固定宽度容器的情况下使用CSS将两列居中?

来自分类Dev

CSS在不使用position:absolute的情况下创建图层(使容器足够容纳所有图层)

来自分类Dev

在不使用正则表达式的情况下访问Azure容器的Blob名称

来自分类Dev

在不使用容器作为jar的情况下运行Jersey Rest API

来自分类Dev

是否可以在不使用 docker 的情况下运行 docker 容器?

来自分类Dev

在不使用./的情况下运行命令

来自分类Dev

Play2(java?)-如何在不使用会话或Flash的情况下扩大拦截器中的请求

来自分类Dev

如何在不使用最小高度的情况下将父容器正确调整为子容器的大小

来自分类Dev

Apache Camel:是否可以在不使用Spring的情况下配置WMQ?

来自分类Dev

在不使用物理设备的情况下创建供应配置文件(用于TestFlight测试的归档)

来自分类Dev

如何在不使用@ hydra.main()的情况下获取Hydra配置

来自分类Dev

如何在MassTransit中不使用SNS主题的情况下正确配置SQS?

来自分类Dev

Apache Camel:是否可以在不使用Spring的情况下配置WMQ?

来自分类Dev

如何在不使用Shell配置文件的情况下更改/修复v命令?

来自分类Dev

在不使用env var的情况下读取Heroku上的秘密配置文件

来自分类Dev

是否可以在不使用 Microsoft bot 框架的情况下配置 Messenger 通道?

来自分类Dev

在不使用class =的情况下,对一种商品使用相同的CSS

来自分类Dev

使用队列从多个输入文件中统一采样

来自分类Dev

如何在不使用 Flutter 底部导航栏的情况下显示固定在屏幕底部的容器?

来自分类Dev

在不使用单例的情况下将类限制为一个实例?

来自分类Dev

如何在不使用getattr的情况下获取一种方法的变量

Related 相关文章

  1. 1

    从配置中统一拦截而不使用容器

  2. 2

    是否可以在不使用SSL的情况下通过HTTP调用统一引擎API?

  3. 3

    在不使用__proto__的情况下配置[[Prototype]]链

  4. 4

    在不使用GUI的情况下配置Firefox

  5. 5

    模式匹配情况下的统一

  6. 6

    在不使用CSS的height属性的情况下,根据右侧容器的高度调整左侧容器

  7. 7

    ArrayFire中统一后端的使用

  8. 8

    是否可以在不使用Arquillian容器管理和部署的情况下使用Arquillian Graphene?

  9. 9

    如何在不使用固定宽度容器的情况下使用CSS将两列居中?

  10. 10

    CSS在不使用position:absolute的情况下创建图层(使容器足够容纳所有图层)

  11. 11

    在不使用正则表达式的情况下访问Azure容器的Blob名称

  12. 12

    在不使用容器作为jar的情况下运行Jersey Rest API

  13. 13

    是否可以在不使用 docker 的情况下运行 docker 容器?

  14. 14

    在不使用./的情况下运行命令

  15. 15

    Play2(java?)-如何在不使用会话或Flash的情况下扩大拦截器中的请求

  16. 16

    如何在不使用最小高度的情况下将父容器正确调整为子容器的大小

  17. 17

    Apache Camel:是否可以在不使用Spring的情况下配置WMQ?

  18. 18

    在不使用物理设备的情况下创建供应配置文件(用于TestFlight测试的归档)

  19. 19

    如何在不使用@ hydra.main()的情况下获取Hydra配置

  20. 20

    如何在MassTransit中不使用SNS主题的情况下正确配置SQS?

  21. 21

    Apache Camel:是否可以在不使用Spring的情况下配置WMQ?

  22. 22

    如何在不使用Shell配置文件的情况下更改/修复v命令?

  23. 23

    在不使用env var的情况下读取Heroku上的秘密配置文件

  24. 24

    是否可以在不使用 Microsoft bot 框架的情况下配置 Messenger 通道?

  25. 25

    在不使用class =的情况下,对一种商品使用相同的CSS

  26. 26

    使用队列从多个输入文件中统一采样

  27. 27

    如何在不使用 Flutter 底部导航栏的情况下显示固定在屏幕底部的容器?

  28. 28

    在不使用单例的情况下将类限制为一个实例?

  29. 29

    如何在不使用getattr的情况下获取一种方法的变量

热门标签

归档