gpt4 book ai didi

c# - 为什么我们使用动态代理

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:25 26 4
gpt4 key购买 nike

A dynamic proxy class is a class that implements a list of interfaces specified at runtime such that a method invocation through one of the interfaces on an instance of the class will be encoded and dispatched to another object through a uniform interface. It can be used to create a type-safe proxy object for a list of interfaces without requiring pre-generation of the proxy class.Dynamic proxy classes are useful to an application or library that needs to provide type-safe reflective dispatch of invocations on objects that present interface APIs enter image description here

上图是很好的示例,但为什么我们使用动态代理?

有没有一个简单的例子可以在现实世界中使用,以获得更多的感知?

最佳答案

一个常见的用例是 Aspect-Oriented Programming ,其中您寻求跨多个组件应用通用功能,而不需要组件本身来实现该功能。在这些情况下,您可以使用动态代理来包装所有具有附加行为的目标组件。这样做

几个例子:

  • Hibernate 和 Entity Framework 等 ORM 这样做是为了围绕代码优先设计提供持久性实现。核心域类是在不知道其持久性的情况下构建的,框架在启动时包装或扩展这些类以处理实际实现。

  • 使用日志记录或缓存等方面包装接口(interface)的所有成员。例如,如果您想记录 ISomeInterface 上的每个方法调用,您可以编写一个动态代理来查找所有接口(interface)方法,使用方法详细信息调用 Log 方法,然后将调用传递给实际实现。

    <

关于c# - 为什么我们使用动态代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18350431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com